diff --git a/controller/controller.go b/controller/controller.go
index 6d55f93d12bbb9eebf453a2d11a1764da34ed0d2..2cf210ac348fd359bc71076744a5073ffe39a223 100644
--- a/controller/controller.go
+++ b/controller/controller.go
@@ -49,8 +49,6 @@ import (
 	topoPorts "code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
 	routingtables "code.fbi.h-da.de/danet/gosdn/controller/topology/routing-tables"
 
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
-
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus"
 )
 
@@ -71,7 +69,7 @@ type Core struct {
 	portService     topoPorts.Service
 	routeService    routingtables.Service
 	pluginService   ports.PluginService
-	eventService    eventInterfaces.Service
+	eventService    ports.EventService
 	appService      app.ManagementService
 
 	httpServer *http.Server
@@ -207,24 +205,24 @@ func startGrpc() error {
 	jwtManager := rbacImpl.NewJWTManager(config.JWTSecret, config.JWTDuration)
 	setupGRPCServerWithCorrectSecurityLevel(jwtManager, c.userService, c.roleService)
 
-	// c.nbi = nbi.NewNBI(
-	// 	c.pndStore,
-	// 	c.pndService,
-	// 	c.mneService,
-	// 	c.changeStore,
-	// 	c.userService,
-	// 	c.roleService,
-	// 	*jwtManager,
-	// 	c.topologyService,
-	// 	c.nodeService,
-	// 	c.portService,
-	// 	c.routeService,
-	// 	c.appService,
-	// 	c.pluginService,
-	// 	c.pluginRegistryClient,
-	// 	c.csbiClient,
-	// 	callback,
-	// )
+	c.nbi = nbi.NewNBI(
+		c.pndStore,
+		c.pndService,
+		c.mneService,
+		c.changeStore,
+		c.userService,
+		c.roleService,
+		*jwtManager,
+		c.topologyService,
+		c.nodeService,
+		c.portService,
+		c.routeService,
+		c.appService,
+		c.pluginService,
+		c.pluginRegistryClient,
+		c.csbiClient,
+		callback,
+	)
 
 	ppb.RegisterPndServiceServer(c.grpcServer, c.nbi.Pnd)
 	cpb.RegisterCsbiServiceServer(c.grpcServer, c.nbi.Csbi)
diff --git a/controller/eventService/Service.go b/controller/eventService/Service.go
index 7c822fc8a6b54e0d4cc07a094f9647c8f4cbd28b..34aad0519aabb9e534456ecb7d54ace39907bb23 100644
--- a/controller/eventService/Service.go
+++ b/controller/eventService/Service.go
@@ -8,8 +8,7 @@ import (
 	"code.fbi.h-da.de/danet/gosdn/controller/config"
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-
-	interfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 
 	amqp "github.com/rabbitmq/amqp091-go"
 	"github.com/sethvargo/go-retry"
@@ -46,7 +45,7 @@ type EventService struct {
 }
 
 // NewEventService creates a new connection to the broker and opens a channel for later usage.
-func NewEventService() (interfaces.Service, error) {
+func NewEventService() (ports.EventService, error) {
 	// TODO: This is an fugly hack to mitigate that some tests are trying to connect to an actual broker. (staester)
 	if config.AMQPPrefix == "" {
 		return NewMockEventService(), nil
diff --git a/controller/eventService/utils.go b/controller/eventService/utils.go
index 12bb8ef48eeae5a00a7989d07576b4ca3b522215..3668fc6dcb4ed47e2e91ed70504835867e5f45b3 100644
--- a/controller/eventService/utils.go
+++ b/controller/eventService/utils.go
@@ -4,7 +4,7 @@ import (
 	"fmt"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	interfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 )
 
 func amqpURIBuilder(prefix, user, pass, host, port string) string {
@@ -17,7 +17,7 @@ type MockEventService struct {
 }
 
 // NewMockEventService creates a new connection to the broker and opens a channel for later usage.
-func NewMockEventService() interfaces.Service {
+func NewMockEventService() ports.EventService {
 	return &MockEventService{
 		Queue: make(map[string][]event.Event),
 	}
diff --git a/controller/interfaces/event/service.go b/controller/interfaces/event/service.go
deleted file mode 100644
index 34b7e26fce234a6cca34277f4574d387fc70a2bf..0000000000000000000000000000000000000000
--- a/controller/interfaces/event/service.go
+++ /dev/null
@@ -1,11 +0,0 @@
-package event
-
-import "code.fbi.h-da.de/danet/gosdn/controller/event"
-
-// Service is the event service.
-type Service interface {
-	PublishEvent(topic string, event event.Event) error
-	CloseConnection()
-	RetryPublish(topic string, event event.Event) error
-	Reconnect()
-}
diff --git a/controller/nucleus/domain/application/service/networkElementService.go b/controller/nucleus/domain/application/service/networkElementService.go
index 64d3081074414d557ac20e687b6e421653db14a4..e638f15eb14278858158e68725ecc7a5f7cb470d 100644
--- a/controller/nucleus/domain/application/service/networkElementService.go
+++ b/controller/nucleus/domain/application/service/networkElementService.go
@@ -5,7 +5,6 @@ import (
 
 	spb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/southbound"
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"github.com/google/uuid"
@@ -26,14 +25,14 @@ const (
 type NetworkElementService struct {
 	networkElementStore ports.NetworkElementStore
 	pluginService       ports.PluginService
-	eventService        eventInterfaces.Service
+	eventService        ports.EventService
 }
 
 // NewNetworkElementService creates a network element service.
 func NewNetworkElementService(
 	networkElementStore ports.NetworkElementStore,
 	pluginService ports.PluginService,
-	eventService eventInterfaces.Service,
+	eventService ports.EventService,
 ) ports.NetworkElementService {
 	return &NetworkElementService{
 		networkElementStore: networkElementStore,
diff --git a/controller/nucleus/domain/application/service/pluginService.go b/controller/nucleus/domain/application/service/pluginService.go
index df2764dcd1ea7e57f8ec6fdf3d89c6a801381216..8a015b408a4d56b08b9709fb78485ef3534e91a3 100644
--- a/controller/nucleus/domain/application/service/pluginService.go
+++ b/controller/nucleus/domain/application/service/pluginService.go
@@ -14,7 +14,6 @@ import (
 	rpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/plugin-registry"
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/util"
@@ -33,7 +32,7 @@ const (
 // PluginService provides a plugin service implementation.
 type PluginService struct {
 	pluginStore             ports.PluginStore
-	eventService            eventInterfaces.Service
+	eventService            ports.EventService
 	createPluginFromStoreFn func(model.LoadedPlugin) (*model.Plugin, error)
 	pluginRegistryClient    rpb.PluginRegistryServiceClient
 }
@@ -41,7 +40,7 @@ type PluginService struct {
 // NewPluginService creates a plugin service.
 func NewPluginService(
 	pluginStore ports.PluginStore,
-	eventService eventInterfaces.Service,
+	eventService ports.EventService,
 	createPluginFromStoreFn func(model.LoadedPlugin) (*model.Plugin, error),
 	pluginRegistryClient rpb.PluginRegistryServiceClient,
 ) ports.PluginService {
diff --git a/controller/nucleus/domain/ports/service.go b/controller/nucleus/domain/ports/service.go
index a06f341ec2f0b47706522e614f0051128c383020..e89d9cf154ad64a1dcbbe8fb4e60f20baef5b80e 100644
--- a/controller/nucleus/domain/ports/service.go
+++ b/controller/nucleus/domain/ports/service.go
@@ -1,6 +1,7 @@
 package ports
 
 import (
+	"code.fbi.h-da.de/danet/gosdn/controller/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
 	"github.com/google/uuid"
 )
@@ -36,3 +37,11 @@ type PndService interface {
 	// AddPendingChannel(id uuid.UUID, ch chan networkelement.Details)
 	// RemovePendingChannel(id uuid.UUID)
 }
+
+
+type EventService interface {
+	PublishEvent(topic string, event event.Event) error
+	CloseConnection()
+	RetryPublish(topic string, event event.Event) error
+	Reconnect()
+}
diff --git a/controller/nucleus/networkElementWatcher.go b/controller/nucleus/networkElementWatcher.go
index 2f33e56e871ebbf81c59c70621a9775093532b90..b9da1c79c0abc56cc12bfd2b340a1069ac5c8315 100644
--- a/controller/nucleus/networkElementWatcher.go
+++ b/controller/nucleus/networkElementWatcher.go
@@ -8,7 +8,6 @@ import (
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/types"
@@ -32,7 +31,7 @@ const (
 type NetworkElementWatcher struct {
 	mneService                 ports.NetworkElementService
 	networkelementSubcriptions map[uuid.UUID]*networkelementSubscriptionHelper
-	eventService               eventInterfaces.Service
+	eventService               ports.EventService
 }
 
 // networkelementSubscriptionHelper is used to store information to stop a running subscribe go routine.
@@ -42,7 +41,7 @@ type networkelementSubscriptionHelper struct {
 }
 
 // NewNetworkElementWatcher allows to subscribe to network element paths.
-func NewNetworkElementWatcher(mneService ports.NetworkElementService, eventService eventInterfaces.Service) *NetworkElementWatcher {
+func NewNetworkElementWatcher(mneService ports.NetworkElementService, eventService ports.EventService) *NetworkElementWatcher {
 	return &NetworkElementWatcher{
 		mneService:                 mneService,
 		networkelementSubcriptions: make(map[uuid.UUID]*networkelementSubscriptionHelper),
diff --git a/controller/rbac/rbacService.go b/controller/rbac/rbacService.go
index 816ff2210c69e6d11344539081f2b0728a5dcd2e..58e776ba2f9e921f6c7b3d4765900103a8861119 100644
--- a/controller/rbac/rbacService.go
+++ b/controller/rbac/rbacService.go
@@ -4,9 +4,9 @@ import (
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"github.com/google/uuid"
 
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -20,11 +20,11 @@ const (
 // UserService provides a user service implementation.
 type UserService struct {
 	userStore    rbac.UserStore
-	eventService eventInterfaces.Service
+	eventService ports.EventService
 }
 
 // NewUserService creates a user service.
-func NewUserService(userStore rbac.UserStore, eventService eventInterfaces.Service) rbac.UserService {
+func NewUserService(userStore rbac.UserStore, eventService ports.EventService) rbac.UserService {
 	userService := &UserService{
 		userStore:    userStore,
 		eventService: eventService,
@@ -132,11 +132,11 @@ func (s *UserService) createUserFromStore(loadedUser rbac.LoadedUser) rbac.User
 // RoleService provides a role service implementation.
 type RoleService struct {
 	roleStore    rbac.RoleStore
-	eventService eventInterfaces.Service
+	eventService ports.EventService
 }
 
 // NewRoleService creates a role service.
-func NewRoleService(roleStore rbac.RoleStore, eventService eventInterfaces.Service) rbac.RoleService {
+func NewRoleService(roleStore rbac.RoleStore, eventService ports.EventService) rbac.RoleService {
 	return &RoleService{
 		roleStore:    roleStore,
 		eventService: eventService,
diff --git a/controller/topology/nodes/nodeService.go b/controller/topology/nodes/nodeService.go
index 97170576d5bf60058df39b714a699aec094bb3b9..8d37d7c348b719a79b9f995a087a26323d8be6ed 100644
--- a/controller/topology/nodes/nodeService.go
+++ b/controller/topology/nodes/nodeService.go
@@ -2,8 +2,8 @@ package nodes
 
 import (
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 
 	"github.com/google/uuid"
 	log "github.com/sirupsen/logrus"
@@ -26,11 +26,11 @@ type Service interface {
 // NodeService is a NodeService.
 type NodeService struct {
 	store        Store
-	eventService eventInterfaces.Service
+	eventService ports.EventService
 }
 
 // NewNodeService creates a NodeService.
-func NewNodeService(store Store, eventService eventInterfaces.Service) Service {
+func NewNodeService(store Store, eventService ports.EventService) Service {
 	return &NodeService{
 		store:        store,
 		eventService: eventService,
diff --git a/controller/topology/nodes/nodeService_test.go b/controller/topology/nodes/nodeService_test.go
index 95e215f0447f57650d4baa22252be496ab7eb19c..06ebde153a0521159094c1df5e2e4f0393643656 100644
--- a/controller/topology/nodes/nodeService_test.go
+++ b/controller/topology/nodes/nodeService_test.go
@@ -4,9 +4,9 @@ import (
 	"reflect"
 	"testing"
 
+	"code.fbi.h-da.de/danet/gosdn/application-framework/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/conflict"
 	eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/store"
 
diff --git a/controller/topology/ports/portService.go b/controller/topology/ports/portService.go
index f37f0e852ddb26ac3ef5e2be4b0367de06852306..f1e1fcaa7c668276a18a641b0af9b0d51c49656e 100644
--- a/controller/topology/ports/portService.go
+++ b/controller/topology/ports/portService.go
@@ -2,8 +2,8 @@ package ports
 
 import (
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 
 	"github.com/google/uuid"
 	log "github.com/sirupsen/logrus"
@@ -26,11 +26,11 @@ type Service interface {
 // PortService is a service for ports.
 type PortService struct {
 	store        Store
-	eventService eventInterfaces.Service
+	eventService ports.EventService
 }
 
 // NewPortService creates a new PortService.
-func NewPortService(store Store, eventService eventInterfaces.Service) Service {
+func NewPortService(store Store, eventService ports.EventService) Service {
 	return &PortService{
 		store:        store,
 		eventService: eventService,
diff --git a/controller/topology/ports/portService_test.go b/controller/topology/ports/portService_test.go
index e9c56e6b20406bc3bdcbc8652047ed697c8c82b0..4dd006d600b1f9a2b1df1b0be0bb22c73085c249 100644
--- a/controller/topology/ports/portService_test.go
+++ b/controller/topology/ports/portService_test.go
@@ -5,8 +5,8 @@ import (
 	"testing"
 
 	eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/store"
 
 	"github.com/google/uuid"
@@ -42,7 +42,7 @@ func getTestStoreWithPorts(t *testing.T, ports []Port) Store {
 func TestNewPortService(t *testing.T) {
 	type args struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	tests := []struct {
 		name string
@@ -70,7 +70,7 @@ func TestNewPortService(t *testing.T) {
 func TestPortService_EnsureExists(t *testing.T) {
 	type fields struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		port Port
@@ -128,7 +128,7 @@ func TestPortService_EnsureExists(t *testing.T) {
 func TestPortService_Update(t *testing.T) {
 	type fields struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		port Port
@@ -178,7 +178,7 @@ func TestPortService_Update(t *testing.T) {
 func TestPortService_Delete(t *testing.T) {
 	type fields struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		port Port
@@ -227,7 +227,7 @@ func TestPortService_Delete(t *testing.T) {
 func TestPortService_Get(t *testing.T) {
 	type fields struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		query model.Query
@@ -290,7 +290,7 @@ func TestPortService_Get(t *testing.T) {
 func TestPortService_GetAll(t *testing.T) {
 	type fields struct {
 		store        Store
-		eventService eventInterfaces.Service
+		eventService ports.EventService
 	}
 	tests := []struct {
 		name    string
diff --git a/controller/topology/routing-tables/routingTableService.go b/controller/topology/routing-tables/routingTableService.go
index beddd9229c8ef921dc0ac97bc6925ce0aadf743b..9beab198416c88d7d630976fa4e79211cab40ba9 100644
--- a/controller/topology/routing-tables/routingTableService.go
+++ b/controller/topology/routing-tables/routingTableService.go
@@ -2,10 +2,10 @@ package routingtables
 
 import (
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/nodes"
-	"code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
+	topoPorts "code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
 	"github.com/google/uuid"
 	log "github.com/sirupsen/logrus"
 )
@@ -28,16 +28,16 @@ type Service interface {
 type RoutingTableService struct {
 	store        Store
 	nodeService  nodes.Service
-	portService  ports.Service
-	eventService eventInterfaces.Service
+	portService  topoPorts.Service
+	eventService ports.EventService
 }
 
 // NewRoutingTableService creates a RoutingTableService.
 func NewRoutingTableService(
 	store Store,
 	nodeService nodes.Service,
-	portService ports.Service,
-	eventService eventInterfaces.Service,
+	portService topoPorts.Service,
+	eventService ports.EventService,
 ) Service {
 	return &RoutingTableService{
 		store:        store,
diff --git a/controller/topology/routing-tables/routingTableService_test.go b/controller/topology/routing-tables/routingTableService_test.go
index bebf07bca34b98d44560f56faa83836ec5dd3eea..9651e8834fcd789817956c9be702e15c1873de1b 100644
--- a/controller/topology/routing-tables/routingTableService_test.go
+++ b/controller/topology/routing-tables/routingTableService_test.go
@@ -5,10 +5,10 @@ import (
 	"testing"
 
 	eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/nodes"
-	"code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
+	topoPorts "code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/store"
 
 	"github.com/google/uuid"
@@ -21,8 +21,8 @@ func getTestNode() nodes.Node {
 	}
 }
 
-func getTestPort() ports.Port {
-	return ports.Port{
+func getTestPort() topoPorts.Port {
+	return topoPorts.Port{
 		ID:   uuid.MustParse("1fa479e7-d393-4d45-822d-485cc1f05fc2"),
 		Name: "Test-Target-Port",
 	}
@@ -71,8 +71,8 @@ func getTestStoreWithNodes(t *testing.T, nodesToAdd []nodes.Node) nodes.Store {
 	return store
 }
 
-func getTestStoreWithPorts(t *testing.T, portsToAdd []ports.Port) ports.Store {
-	store := store.NewGenericStore[ports.Port]()
+func getTestStoreWithPorts(t *testing.T, portsToAdd []topoPorts.Port) topoPorts.Store {
+	store := store.NewGenericStore[topoPorts.Port]()
 
 	for _, port := range portsToAdd {
 		err := store.Add(port)
@@ -88,8 +88,8 @@ func TestNewRoutingTableService(t *testing.T) {
 	type args struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	tests := []struct {
 		name string
@@ -101,13 +101,13 @@ func TestNewRoutingTableService(t *testing.T) {
 			args: args{
 				store:        getTestStoreWithRoutingTables(t, []RoutingTable{}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			want: NewRoutingTableService(
 				getTestStoreWithRoutingTables(t, []RoutingTable{}),
 				nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventservice.NewMockEventService(),
 			),
 		},
@@ -125,8 +125,8 @@ func TestTopologyService_EnsureExists(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		routingTable RoutingTable
@@ -149,10 +149,10 @@ func TestTopologyService_EnsureExists(t *testing.T) {
 					),
 					eventservice.NewMockEventService(),
 				),
-				portService: ports.NewPortService(
+				portService: topoPorts.NewPortService(
 					getTestStoreWithPorts(
 						t,
-						[]ports.Port{},
+						[]topoPorts.Port{},
 					),
 					eventservice.NewMockEventService(),
 				),
@@ -175,10 +175,10 @@ func TestTopologyService_EnsureExists(t *testing.T) {
 					),
 					eventservice.NewMockEventService(),
 				),
-				portService: ports.NewPortService(
+				portService: topoPorts.NewPortService(
 					getTestStoreWithPorts(
 						t,
-						[]ports.Port{getTestPort()},
+						[]topoPorts.Port{getTestPort()},
 					),
 					eventservice.NewMockEventService(),
 				),
@@ -215,8 +215,8 @@ func TestRoutingTableService_Update(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		routingTable RoutingTable
@@ -233,7 +233,7 @@ func TestRoutingTableService_Update(t *testing.T) {
 			fields: fields{
 				store:        getTestStoreWithRoutingTables(t, []RoutingTable{getTestRoutingTable()}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			args: args{
@@ -262,8 +262,8 @@ func TestRoutingTableService_Delete(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		routingTable RoutingTable
@@ -280,7 +280,7 @@ func TestRoutingTableService_Delete(t *testing.T) {
 			fields: fields{
 				store:        getTestStoreWithRoutingTables(t, []RoutingTable{getTestRoutingTable()}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			args: args{
@@ -293,7 +293,7 @@ func TestRoutingTableService_Delete(t *testing.T) {
 			fields: fields{
 				store:        store.NewGenericStore[RoutingTable](),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			args: args{
@@ -321,7 +321,7 @@ func TestRoutingTableService_Get(t *testing.T) {
 	type fields struct {
 		store       Store
 		nodeService nodes.Service
-		portService ports.Service
+		portService topoPorts.Service
 	}
 	type args struct {
 		query model.Query
@@ -338,7 +338,7 @@ func TestRoutingTableService_Get(t *testing.T) {
 			fields: fields{
 				store:       getTestStoreWithRoutingTables(t, []RoutingTable{}),
 				nodeService: nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService: topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 			},
 			args: args{
 				query: model.Query{
@@ -385,7 +385,7 @@ func TestRoutingTableService_GetAll(t *testing.T) {
 	type fields struct {
 		store       Store
 		nodeService nodes.Service
-		portService ports.Service
+		portService topoPorts.Service
 	}
 	tests := []struct {
 		name    string
@@ -398,7 +398,7 @@ func TestRoutingTableService_GetAll(t *testing.T) {
 			fields: fields{
 				store:       getTestStoreWithRoutingTables(t, []RoutingTable{getTestRoutingTable()}),
 				nodeService: nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService: topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 			},
 			want:    []RoutingTable{getTestRoutingTable()},
 			wantErr: false,
diff --git a/controller/topology/topologyService.go b/controller/topology/topologyService.go
index 129ae048c413dcb3717784895dcac535d3dfa5ad..928fcfc62f06a667cfa080568dfc2f0efe27e52f 100644
--- a/controller/topology/topologyService.go
+++ b/controller/topology/topologyService.go
@@ -2,11 +2,11 @@ package topology
 
 import (
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/links"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/nodes"
-	"code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
+	topoPorts "code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
 	log "github.com/sirupsen/logrus"
 )
 
@@ -28,16 +28,16 @@ type Service interface {
 type TopoService struct {
 	store        Store
 	nodeService  nodes.Service
-	portService  ports.Service
-	eventService eventInterfaces.Service
+	portService  topoPorts.Service
+	eventService ports.EventService
 }
 
 // NewTopologyService creates a new TopologyService.
 func NewTopologyService(
 	store Store,
 	nodeService nodes.Service,
-	portService ports.Service,
-	eventService eventInterfaces.Service,
+	portService topoPorts.Service,
+	eventService ports.EventService,
 ) Service {
 	return &TopoService{
 		store:        store,
diff --git a/controller/topology/topologyService_test.go b/controller/topology/topologyService_test.go
index fe65dec8217ca2efadc44e7df11caf1e9757e1fb..ac37f27f59927d63ea66f17c353a560592f43991 100644
--- a/controller/topology/topologyService_test.go
+++ b/controller/topology/topologyService_test.go
@@ -5,11 +5,11 @@ import (
 	"testing"
 
 	eventservice "code.fbi.h-da.de/danet/gosdn/controller/eventService"
-	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/model"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/links"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/nodes"
-	"code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
+	topoPorts "code.fbi.h-da.de/danet/gosdn/controller/topology/ports"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology/store"
 
 	"github.com/google/uuid"
@@ -29,15 +29,15 @@ func getTestTargetNode() nodes.Node {
 	}
 }
 
-func getTestSourcePort() ports.Port {
-	return ports.Port{
+func getTestSourcePort() topoPorts.Port {
+	return topoPorts.Port{
 		ID:   uuid.MustParse("1fa479e7-d393-4d45-822d-485cc1f05fce"),
 		Name: "Test-Source-Port",
 	}
 }
 
-func getTestTargetPort() ports.Port {
-	return ports.Port{
+func getTestTargetPort() topoPorts.Port {
+	return topoPorts.Port{
 		ID:   uuid.MustParse("1fa479e7-d393-4d45-822d-485cc1f05fc2"),
 		Name: "Test-Target-Port",
 	}
@@ -84,8 +84,8 @@ func getTestStoreWithNodes(t *testing.T, nodesToAdd []nodes.Node) nodes.Store {
 	return store
 }
 
-func getTestStoreWithPorts(t *testing.T, portsToAdd []ports.Port) ports.Store {
-	store := store.NewGenericStore[ports.Port]()
+func getTestStoreWithPorts(t *testing.T, portsToAdd []topoPorts.Port) topoPorts.Store {
+	store := store.NewGenericStore[topoPorts.Port]()
 
 	for _, port := range portsToAdd {
 		err := store.Add(port)
@@ -101,8 +101,8 @@ func TestNewTopologyService(t *testing.T) {
 	type args struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	tests := []struct {
 		name string
@@ -114,13 +114,13 @@ func TestNewTopologyService(t *testing.T) {
 			args: args{
 				store:        getTestStoreWithLinks(t, []links.Link{}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			want: NewTopologyService(
 				getTestStoreWithLinks(t, []links.Link{}),
 				nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventservice.NewMockEventService(),
 			),
 		},
@@ -143,8 +143,8 @@ func TestTopologyService_AddLink(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		link links.Link
@@ -167,10 +167,10 @@ func TestTopologyService_AddLink(t *testing.T) {
 					),
 					eventservice.NewMockEventService(),
 				),
-				portService: ports.NewPortService(
+				portService: topoPorts.NewPortService(
 					getTestStoreWithPorts(
 						t,
-						[]ports.Port{getTestSourcePort(), getTestTargetPort()},
+						[]topoPorts.Port{getTestSourcePort(), getTestTargetPort()},
 					),
 					eventservice.NewMockEventService(),
 				),
@@ -213,8 +213,8 @@ func TestTopologyService_Update(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		link links.Link
@@ -231,7 +231,7 @@ func TestTopologyService_Update(t *testing.T) {
 			fields: fields{
 				store:        getTestStoreWithLinks(t, []links.Link{getTestLink()}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			args: args{
@@ -271,8 +271,8 @@ func TestNodeService_Delete(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		link links.Link
@@ -289,7 +289,7 @@ func TestNodeService_Delete(t *testing.T) {
 			fields: fields{
 				store:        getTestStoreWithLinks(t, []links.Link{getTestLink()}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			args: args{
@@ -302,7 +302,7 @@ func TestNodeService_Delete(t *testing.T) {
 			fields: fields{
 				store:       store.NewGenericStore[links.Link](),
 				nodeService: nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService: topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 			},
 			args: args{
 				link: getTestLink(),
@@ -329,8 +329,8 @@ func TestTopologyService_Get(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	type args struct {
 		query model.Query
@@ -347,7 +347,7 @@ func TestTopologyService_Get(t *testing.T) {
 			fields: fields{
 				store:       getTestStoreWithLinks(t, []links.Link{}),
 				nodeService: nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService: ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService: topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 			},
 			args: args{
 				query: model.Query{
@@ -397,8 +397,8 @@ func TestTopologyService_GetAll(t *testing.T) {
 	type fields struct {
 		store        Store
 		nodeService  nodes.Service
-		portService  ports.Service
-		eventService eventInterfaces.Service
+		portService  topoPorts.Service
+		eventService ports.EventService
 	}
 	tests := []struct {
 		name    string
@@ -411,7 +411,7 @@ func TestTopologyService_GetAll(t *testing.T) {
 			fields: fields{
 				store:        getTestStoreWithLinks(t, []links.Link{getTestLink()}),
 				nodeService:  nodes.NewNodeService(getTestStoreWithNodes(t, []nodes.Node{}), eventservice.NewMockEventService()),
-				portService:  ports.NewPortService(getTestStoreWithPorts(t, []ports.Port{}), eventservice.NewMockEventService()),
+				portService:  topoPorts.NewPortService(getTestStoreWithPorts(t, []topoPorts.Port{}), eventservice.NewMockEventService()),
 				eventService: eventservice.NewMockEventService(),
 			},
 			want:    []links.Link{getTestLink()},