diff --git a/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go b/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go
index 7e372322e2c3371d46efec9f4fa3180750c4abf3..21894684c417bff322d50285396a12cb810f1a11 100644
--- a/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go
+++ b/controller/nucleus/pkg/persistence/memory/memoryPluginStore.go
@@ -4,28 +4,28 @@ import (
 	"encoding/json"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
 	"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/store"
 )
 
 // MemoryPluginStore provides a in-memory implementation for plugins.
 type MemoryPluginStore struct {
-	Store           map[string]plugin.LoadedPlugin
+	Store           map[string]model.LoadedPlugin
 	nameLookupTable map[string]string
 }
 
 // NewMemoryPluginStore returns a specific in-memory store for plugins.
-func NewMemoryPluginStore() plugin.Store {
+func NewMemoryPluginStore() ports.PluginStore {
 	return &MemoryPluginStore{
-		Store:           make(map[string]plugin.LoadedPlugin),
+		Store:           make(map[string]model.LoadedPlugin),
 		nameLookupTable: make(map[string]string),
 	}
 }
 
 // Add adds a item to the store.
-func (t *MemoryPluginStore) Add(item plugin.Plugin) error {
-	loadedPlugin, err := store.TransformObjectToLoadedObject[plugin.Plugin, plugin.LoadedPlugin](item)
+func (t *MemoryPluginStore) Add(item *model.Plugin) error {
+	loadedPlugin, err := store.TransformObjectToLoadedObject[*model.Plugin, model.LoadedPlugin](item)
 	if err != nil {
 		return err
 	}
@@ -41,13 +41,13 @@ func (t *MemoryPluginStore) Add(item plugin.Plugin) error {
 }
 
 // Update updates a existing plugin.
-func (t *MemoryPluginStore) Update(item plugin.Plugin) error {
+func (t *MemoryPluginStore) Update(item *model.Plugin) error {
 	_, ok := t.Store[item.ID().String()]
 	if ok {
 		return nil
 	}
 
-	var plugin plugin.LoadedPlugin
+	var plugin model.LoadedPlugin
 
 	b, err := json.Marshal(item)
 	if err != nil {
@@ -66,14 +66,14 @@ func (t *MemoryPluginStore) Update(item plugin.Plugin) error {
 }
 
 // Delete deletes a plugin from the store.
-func (t *MemoryPluginStore) Delete(item plugin.Plugin) error {
+func (t *MemoryPluginStore) Delete(item *model.Plugin) error {
 	delete(t.Store, item.ID().String())
 
 	return nil
 }
 
 // Get takes a plugins's UUID or name and returns the plugin.
-func (t *MemoryPluginStore) Get(query model.Query) (plugin.LoadedPlugin, error) {
+func (t *MemoryPluginStore) Get(query model.Query) (model.LoadedPlugin, error) {
 	// First search for direct hit on UUID.
 	item, ok := t.Store[query.ID.String()]
 	if !ok {
@@ -95,8 +95,8 @@ func (t *MemoryPluginStore) Get(query model.Query) (plugin.LoadedPlugin, error)
 }
 
 // GetAll returns all stored plugins.
-func (t *MemoryPluginStore) GetAll() ([]plugin.LoadedPlugin, error) {
-	var allItems []plugin.LoadedPlugin
+func (t *MemoryPluginStore) GetAll() ([]model.LoadedPlugin, error) {
+	var allItems []model.LoadedPlugin
 
 	for _, item := range t.Store {
 		allItems = append(allItems, item)
diff --git a/controller/nucleus/pkg/persistence/memory/memoryRoleStore.go b/controller/nucleus/pkg/persistence/memory/memoryRoleStore.go
index f4b9312e14d1c36876e259cc544dea0b34db91f9..52c4f800be5676e01f48610e4edba9a037efee15 100644
--- a/controller/nucleus/pkg/persistence/memory/memoryRoleStore.go
+++ b/controller/nucleus/pkg/persistence/memory/memoryRoleStore.go
@@ -1,30 +1,30 @@
-package rbac
+package memory
 
 import (
 	"encoding/json"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
-	"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"
 )
 
 // MemoryRoleStore provides a in-memory implementation for roles.
 type MemoryRoleStore struct {
-	Store           map[string]rbac.LoadedRole
+	Store           map[string]model.LoadedRole
 	nameLookupTable map[string]string
 }
 
 // NewMemoryRoleStore returns a specific in-memory store for roles.
-func NewMemoryRoleStore() rbac.RoleStore {
+func NewMemoryRoleStore() ports.RoleStore {
 	return &MemoryRoleStore{
-		Store:           make(map[string]rbac.LoadedRole),
+		Store:           make(map[string]model.LoadedRole),
 		nameLookupTable: make(map[string]string),
 	}
 }
 
 // Add adds a item to the store.
-func (s *MemoryRoleStore) Add(item rbac.Role) error {
-	var role rbac.LoadedRole
+func (s *MemoryRoleStore) Add(item model.Role) error {
+	var role model.LoadedRole
 
 	b, err := json.Marshal(item)
 	if err != nil {
@@ -47,19 +47,19 @@ func (s *MemoryRoleStore) Add(item rbac.Role) error {
 }
 
 // Delete deletes a role from the role store.
-func (s *MemoryRoleStore) Delete(item rbac.Role) error {
+func (s *MemoryRoleStore) Delete(item model.Role) error {
 	delete(s.Store, item.ID().String())
 	return nil
 }
 
 // Update updates an existing role.
-func (s *MemoryRoleStore) Update(item rbac.Role) error {
+func (s *MemoryRoleStore) Update(item model.Role) error {
 	_, ok := s.Store[item.ID().String()]
 	if !ok {
 		return customerrs.CouldNotFindError{ID: item.ID(), Name: item.Name()}
 	}
 
-	var role rbac.LoadedRole
+	var role model.LoadedRole
 
 	b, err := json.Marshal(item)
 	if err != nil {
@@ -77,7 +77,7 @@ func (s *MemoryRoleStore) Update(item rbac.Role) error {
 }
 
 // Get takes a role's UUID or name and returns the role.
-func (s *MemoryRoleStore) Get(query model.Query) (rbac.LoadedRole, error) {
+func (s *MemoryRoleStore) Get(query model.Query) (model.LoadedRole, error) {
 	// First search for direct hit on UUID.
 	item, ok := s.Store[query.ID.String()]
 	if !ok {
@@ -99,8 +99,8 @@ func (s *MemoryRoleStore) Get(query model.Query) (rbac.LoadedRole, error) {
 }
 
 // GetAll returns all stored roles.
-func (s *MemoryRoleStore) GetAll() ([]rbac.LoadedRole, error) {
-	var allItems []rbac.LoadedRole
+func (s *MemoryRoleStore) GetAll() ([]model.LoadedRole, error) {
+	var allItems []model.LoadedRole
 
 	for _, item := range s.Store {
 		allItems = append(allItems, item)
diff --git a/controller/nucleus/pkg/persistence/memory/memoryUserStore.go b/controller/nucleus/pkg/persistence/memory/memoryUserStore.go
index 52d33ae86ae017c4d3be524e20315186ff55a3dc..dc6e87df0e72c113c1479b10a117d781b951f293 100644
--- a/controller/nucleus/pkg/persistence/memory/memoryUserStore.go
+++ b/controller/nucleus/pkg/persistence/memory/memoryUserStore.go
@@ -1,30 +1,30 @@
-package rbac
+package memory
 
 import (
 	"encoding/json"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
-	"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"
 )
 
 // MemoryUserStore provides a in-memory implementation for users.
 type MemoryUserStore struct {
-	Store           map[string]rbac.LoadedUser
+	Store           map[string]model.LoadedUser
 	nameLookupTable map[string]string
 }
 
 // NewMemoryUserStore returns a specific in-memory store for users.
-func NewMemoryUserStore() rbac.UserStore {
+func NewMemoryUserStore() ports.UserStore {
 	return &MemoryUserStore{
-		Store:           make(map[string]rbac.LoadedUser),
+		Store:           make(map[string]model.LoadedUser),
 		nameLookupTable: make(map[string]string),
 	}
 }
 
 // Add adds a item to the store.
-func (s *MemoryUserStore) Add(item rbac.User) error {
-	var user rbac.LoadedUser
+func (s *MemoryUserStore) Add(item model.User) error {
+	var user model.LoadedUser
 
 	b, err := json.Marshal(item)
 	if err != nil {
@@ -47,19 +47,19 @@ func (s *MemoryUserStore) Add(item rbac.User) error {
 }
 
 // Delete deletes a user from the user store.
-func (s *MemoryUserStore) Delete(item rbac.User) error {
+func (s *MemoryUserStore) Delete(item model.User) error {
 	delete(s.Store, item.ID().String())
 	return nil
 }
 
 // Update updates an existing user.
-func (s *MemoryUserStore) Update(item rbac.User) error {
+func (s *MemoryUserStore) Update(item model.User) error {
 	_, ok := s.Store[item.ID().String()]
 	if !ok {
 		return customerrs.CouldNotFindError{ID: item.ID(), Name: item.Name()}
 	}
 
-	var user rbac.LoadedUser
+	var user model.LoadedUser
 
 	b, err := json.Marshal(item)
 	if err != nil {
@@ -77,7 +77,7 @@ func (s *MemoryUserStore) Update(item rbac.User) error {
 }
 
 // Get takes a user's UUID or name and returns the user.
-func (s *MemoryUserStore) Get(query model.Query) (rbac.LoadedUser, error) {
+func (s *MemoryUserStore) Get(query model.Query) (model.LoadedUser, error) {
 	// First search for direct hit on UUID.
 	item, ok := s.Store[query.ID.String()]
 	if !ok {
@@ -99,8 +99,8 @@ func (s *MemoryUserStore) Get(query model.Query) (rbac.LoadedUser, error) {
 }
 
 // GetAll returns all stored users.
-func (s *MemoryUserStore) GetAll() ([]rbac.LoadedUser, error) {
-	var allItems []rbac.LoadedUser
+func (s *MemoryUserStore) GetAll() ([]model.LoadedUser, error) {
+	var allItems []model.LoadedUser
 
 	for _, item := range s.Store {
 		allItems = append(allItems, item)