diff --git a/controller/api/initialise_test.go b/controller/api/initialise_test.go
index cb092b8f4deb3c14d07ab4e3f6242cd72336874f..b54c9f5b852ca8558a2f92ada49d2575b0f8c1d8 100644
--- a/controller/api/initialise_test.go
+++ b/controller/api/initialise_test.go
@@ -18,21 +18,21 @@ import (
 	"code.fbi.h-da.de/danet/gosdn/controller/config"
 	"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/networkdomain"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/rbac"
 	"code.fbi.h-da.de/danet/gosdn/controller/mocks"
 	nbi "code.fbi.h-da.de/danet/gosdn/controller/northbound/server"
-	"code.fbi.h-da.de/danet/gosdn/controller/nucleus"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/domain/application/service"
 	"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/pkg/persistence"
+	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/pkg/persistence/memory"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/util/proto"
 	rbacImpl "code.fbi.h-da.de/danet/gosdn/controller/rbac"
 	"code.fbi.h-da.de/danet/gosdn/controller/store"
 	"code.fbi.h-da.de/danet/gosdn/controller/topology"
 	"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"
 	routingtables "code.fbi.h-da.de/danet/gosdn/controller/topology/routing-tables"
 	topoStore "code.fbi.h-da.de/danet/gosdn/controller/topology/store"
 	"code.fbi.h-da.de/danet/gosdn/models/generated/openconfig"
@@ -58,10 +58,10 @@ const changeID = "0992d600-f7d4-4906-9559-409b04d59a5f"
 const sbiID = "f6fd4b35-f039-4111-9156-5e4501bb8a5a"
 const mneID = "7e0ed8cc-ebf5-46fa-9794-741494914883"
 
-var pndStore networkdomain.PndStore
+var pndStore ports.PndStore
 var userService rbac.UserService
 var roleService rbac.RoleService
-var pluginStore plugin.Store
+var pluginStore ports.PluginStore
 var lis *bufconn.Listener
 var pndUUID uuid.UUID
 var sbiUUID uuid.UUID
@@ -96,7 +96,7 @@ func bootstrapUnitTest() {
 
 	eventService := eventservice.NewMockEventService()
 
-	pndStore = nucleus.NewMemoryPndStore()
+	pndStore = memory.NewMemoryPndStore()
 	userService = rbacImpl.NewUserService(rbacImpl.NewMemoryUserStore(), eventService)
 	roleService = rbacImpl.NewRoleService(rbacImpl.NewMemoryRoleStore(), eventService)
 	if err := clearAndCreateAuthTestSetup(); err != nil {
@@ -132,7 +132,7 @@ func bootstrapUnitTest() {
 		log.Fatal(err)
 	}
 
-	pluginMock := &mocks.Plugin{}
+	pluginMock := &mocks.PluginIface{}
 	pluginMock.On("ID").Return(defaultPluginID)
 	pluginMock.On("Unmarshal", mock.Anything, mock.Anything).Return(nil)
 	pluginMock.On("GetNode", mock.Anything).Return([]*gpb.Notification{}, nil)
@@ -161,10 +161,10 @@ func bootstrapUnitTest() {
 	mockPnd.On("GetNetworkElement", mock.Anything).Return(mockNetworkElement, nil)
 	mockPnd.On("Commit", mock.Anything).Return(nil)
 	mockPnd.On("Confirm", mock.Anything).Return(nil)
-	mockPnd.On("NetworkElements").Return([]networkelement.NetworkElement{
-		&nucleus.CommonNetworkElement{
+	mockPnd.On("NetworkElements").Return([]model.NetworkElement{
+		&model.CommonNetworkElement{
 			UUID:   mneUUID,
-			Plugin: &mocks.Plugin{},
+			Plugin: &mocks.PluginIface{},
 		},
 	})
 	mockPnd.On("ChangeMNE", mock.Anything, mock.Anything, mock.Anything, mock.Anything).Return(uuid.Nil, nil)
@@ -179,8 +179,8 @@ func bootstrapUnitTest() {
 	nodeStore := topoStore.NewGenericStore[nodes.Node]()
 	nodeService := nodes.NewNodeService(nodeStore, eventService)
 
-	portStore := topoStore.NewGenericStore[ports.Port]()
-	portService := ports.NewPortService(portStore, eventService)
+	portStore := topoStore.NewGenericStore[topoPorts.Port]()
+	portService := topoPorts.NewPortService(portStore, eventService)
 
 	topoloyStore := topoStore.NewGenericStore[links.Link]()
 	topologyService := topology.NewTopologyService(topoloyStore, nodeService, portService, eventService)
@@ -188,13 +188,18 @@ func bootstrapUnitTest() {
 	routeStore := topoStore.NewGenericStore[routingtables.RoutingTable]()
 	routeService := routingtables.NewRoutingTableService(routeStore, nodeService, portService, eventService)
 
-	pluginStore = nucleus.NewMemoryPluginStore()
-	pluginService := nucleus.NewPluginService(pluginStore, eventService, nucleus.NewPluginThroughReattachConfig, rpb.NewPluginRegistryServiceClient(&grpc.ClientConn{}))
+	pluginStore = memory.NewMemoryPluginStore()
+	pluginService := service.NewPluginService(
+		pluginStore,
+		eventService,
+		model.NewPluginThroughReattachConfig,
+		rpb.NewPluginRegistryServiceClient(&grpc.ClientConn{}),
+	)
 
-	networkElementStore := nucleus.NewNetworkElementStore()
-	networkElementService := nucleus.NewNetworkElementService(networkElementStore, pluginService, eventService)
+	networkElementStore := persistence.NewNetworkElementStore()
+	networkElementService := service.NewNetworkElementService(networkElementStore, pluginService, eventService)
 
-	mne, _ := nucleus.NewNetworkElement("test", mneUUID, &tpb.TransportOption{
+	mne, _ := model.NewNetworkElement("test", mneUUID, &tpb.TransportOption{
 		Address:  "test",
 		Username: "test",
 		Password: "test",
@@ -208,9 +213,9 @@ func bootstrapUnitTest() {
 	_ = networkElementService.Add(mne)
 
 	pndService := &mocks.PndService{}
-	pndService.On("GetAll").Return([]networkdomain.NetworkDomain{}, nil)
+	pndService.On("GetAll").Return([]model.NetworkDomain{}, nil)
 	pndService.On("Add", mock.Anything).Return(nil)
-	pndService.On("Get", mock.Anything).Return(nucleus.NewPND(pndUUID, "test", "test"), nil)
+	pndService.On("Get", mock.Anything).Return(model.NewPND(pndUUID, "test", "test"), nil)
 
 	changeStore := *store.NewChangeStore()
 	err = changeStore.Add(mockChange)