diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go
index 7bf3c4a560ca0173b1ccb8fc2f8157dde224eb43..675035ca4ce97749f4bd4c6abb8a8b13e1c6f263 100644
--- a/controller/topology/nodes/nodeStore.go
+++ b/controller/topology/nodes/nodeStore.go
@@ -121,7 +121,7 @@ func (s *DatabaseNodeStore) GetAll() ([]Node, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return loadedNode, errors.ErrCouldNotMarshall{StoreName: s.storeName}
+		return loadedNode, errors.ErrCouldNotMarshall{Type: loadedNode, Err: err}
 	}
 
 	return loadedNode, nil
@@ -138,7 +138,7 @@ func (s *DatabaseNodeStore) Add(node Node) error {
 		InsertOne(ctx, node)
 	if err != nil {
 		log.Printf("Could not add Node: %v", err)
-		return errors.ErrCouldNotCreate{StoreName: s.storeName}
+		return errors.ErrCouldNotCreate{Identifier: node.ID, Type: node, Err: err}
 	}
 
 	return nil
@@ -169,7 +169,7 @@ func (s *DatabaseNodeStore) Update(node Node) error {
 	if err != nil {
 		log.Printf("Could not update Node: %v", err)
 
-		return errors.ErrCouldNotUpdate{StoreName: s.storeName}
+		return errors.ErrCouldNotUpdate{Identifier: node.ID, Type: node, Err: err}
 	}
 
 	return nil
diff --git a/controller/topology/ports/port.go b/controller/topology/ports/port.go
index 9062f1e51f72b83b08985fdb78c3618c484995f6..466292408989947de59077e255b14cf679f5bef3 100644
--- a/controller/topology/ports/port.go
+++ b/controller/topology/ports/port.go
@@ -1,11 +1,15 @@
 package ports
 
-import "github.com/google/uuid"
+import (
+	"code.fbi.h-da.de/danet/gosdn/controller/topology/ports/configuration"
+	"github.com/google/uuid"
+)
 
 // Port is a representation of physical port on a network element
 type Port struct {
-	ID   uuid.UUID `bson:"_id"`
-	Name string    `bson:"name,omitempty"`
+	ID            uuid.UUID `bson:"_id"`
+	Name          string    `bson:"name,omitempty"`
+	Configuration configuration.IPConfig
 }
 
 // GetID returns the id of a port
diff --git a/controller/topology/ports/portService_test.go b/controller/topology/ports/portService_test.go
index 37dc354579e4a3425b791317a0eff7918333d25c..c02309fda5d32b2530b0144e9c6e83cfd7058959 100644
--- a/controller/topology/ports/portService_test.go
+++ b/controller/topology/ports/portService_test.go
@@ -166,7 +166,7 @@ func TestPortService_Update(t *testing.T) {
 				t.Errorf("PortService.Update() error = %v, wantErr %v", err, tt.wantErr)
 			}
 
-			updatedPort, err := p.Get(store.Query(tt.args.port))
+			updatedPort, err := p.Get(store.Query{ID: tt.args.port.ID})
 			if err != nil {
 				t.Errorf("PortService.Get() failed %v", err)
 			}
diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go
index cc3ea9e79cbe8466c26602463c9fae6c053d81f3..bb32c31118ac68b28e639fdf738c60a7ecada246 100644
--- a/controller/topology/ports/portStore.go
+++ b/controller/topology/ports/portStore.go
@@ -122,7 +122,7 @@ func (s *DatabasePortStore) GetAll() ([]Port, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return loadedPort, errors.ErrCouldNotMarshall{StoreName: s.storeName}
+		return loadedPort, errors.ErrCouldNotMarshall{Type: loadedPort, Err: err}
 	}
 
 	return loadedPort, nil
@@ -139,7 +139,7 @@ func (s *DatabasePortStore) Add(port Port) error {
 		InsertOne(ctx, port)
 	if err != nil {
 		log.Printf("Could not add Port: %v", err)
-		return errors.ErrCouldNotCreate{StoreName: s.storeName}
+		return errors.ErrCouldNotCreate{Identifier: port.ID, Type: port, Err: err}
 	}
 
 	return nil
@@ -170,7 +170,7 @@ func (s *DatabasePortStore) Update(port Port) error {
 	if err != nil {
 		log.Printf("Could not update Port: %v", err)
 
-		return errors.ErrCouldNotUpdate{StoreName: s.storeName}
+		return errors.ErrCouldNotUpdate{Identifier: port.ID, Type: port, Err: err}
 	}
 
 	return nil
diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go
index df9b8e5fb3aaf36f14a605f75cb027073972b7c7..6414b1a69af2df2c6d0c352c8d68b78d2aad8cfc 100644
--- a/controller/topology/topologyStore.go
+++ b/controller/topology/topologyStore.go
@@ -122,7 +122,7 @@ func (s *DatabaseTopologyStore) GetAll() ([]links.Link, error) {
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return loadedTopology, errors.ErrCouldNotMarshall{StoreName: s.storeName}
+		return loadedTopology, errors.ErrCouldNotMarshall{Type: loadedTopology, Err: err}
 	}
 
 	return loadedTopology, nil
@@ -139,7 +139,7 @@ func (s *DatabaseTopologyStore) Add(link links.Link) error {
 		InsertOne(ctx, link)
 	if err != nil {
 		log.Printf("Could not add Link: %v", err)
-		return errors.ErrCouldNotCreate{StoreName: s.storeName}
+		return errors.ErrCouldNotCreate{Identifier: link.ID, Type: link, Err: err}
 	}
 
 	return nil
@@ -170,7 +170,7 @@ func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) error {
 	if err != nil {
 		log.Printf("Could not update link: %v", err)
 
-		return errors.ErrCouldNotUpdate{StoreName: s.storeName}
+		return errors.ErrCouldNotUpdate{Identifier: linkToUpdate.ID, Type: linkToUpdate, Err: err}
 	}
 
 	return nil