diff --git a/ekms/internal/kms/kms.go b/ekms/internal/kms/kms.go
index 4aaa804105d84dfb910f5d7bba2d9df7103b99f1..5da899cfed25ec2bc210f4cce24ec8a6fe338505 100644
--- a/ekms/internal/kms/kms.go
+++ b/ekms/internal/kms/kms.go
@@ -167,7 +167,7 @@ func (kms *EKMS) AddPeer(peerKmsId string, kmsPeerSocket string, servingQLE Quan
 func (kms *EKMS) AssignForwardingRoute(pId, pHop, nHop string) error {
 	pathId, err := uuid.Parse(pId)
 	if err != nil {
-		return fmt.Errorf("The given path id %s is no uuid; err = ", pathId, err)
+		return fmt.Errorf("The given path id %s is no uuid; err = %w", pathId, err)
 	}
 
 	var previousHop *kmsPeer
diff --git a/ekms/internal/kms/kmsetsi.go b/ekms/internal/kms/kmsetsi.go
index 1b5527093f9b9ef191dbdb01c6f60298a63666a5..6fe86583a507286ed463eecbaa69e616f3111609 100644
--- a/ekms/internal/kms/kmsetsi.go
+++ b/ekms/internal/kms/kmsetsi.go
@@ -2,7 +2,6 @@ package kms
 
 import (
 	"context"
-	"errors"
 	"flag"
 	"fmt"
 	"net"
@@ -57,16 +56,19 @@ func (es *etsiServer) ETSIAddKMSPeer(ctx context.Context, in *pb.ETSIKMSPeerRequ
 
 	// Check first if KmsLocalQLEId is actually one of ours...
 	qleID := uuid.MustParse(in.KmsLocalQLEId)
-	servingQLE, _ := es.handlingEkms.quantumModules[""]
+	servingQLE := es.handlingEkms.quantumModules[""]
 	if servingQLE == nil {
 		// no such element!
-		err := errors.New(fmt.Sprintf("Unknown local quantum element with ID %d", qleID))
+		err := fmt.Errorf("Unknown local quantum element with ID %d", qleID)
 
 		return &pb.ETSIKMSPeerReply{}, err
 	}
 
 	// TODO: remove hardcoded id
-	es.handlingEkms.AddPeer("default", in.GetKmsPeerSocket(), servingQLE)
+	_, err := es.handlingEkms.AddPeer("default", in.GetKmsPeerSocket(), servingQLE)
+	if err != nil {
+		return nil, err
+	}
 
 	return &pb.ETSIKMSPeerReply{
 		KmsPeerName: es.handlingEkms.kmsName,
@@ -101,7 +103,7 @@ func (es *etsiServer) ETSIGetPeerList(ctx context.Context, in *pb.ETSIKMSPeerLis
 func (es *etsiServer) ETSIAssignForwarding(ctx context.Context, in *pb.ETSIAssignForwardingRequest) (*pb.ETSIAssignForwardingReply, error) {
 	pathId, err := uuid.Parse(in.GetPathId())
 	if err != nil {
-		return nil, status.Errorf(codes.InvalidArgument, "The given path id %s is no uuid; err = ", in.GetPathId(), err)
+		return nil, status.Errorf(codes.InvalidArgument, "The given path id %s is no uuid; err = %s", in.GetPathId(), err)
 	}
 
 	var previousHop *kmsPeer
diff --git a/ekms/internal/kms/util.go b/ekms/internal/kms/util.go
index 52671acbe95d1ce57415d0f0321ee233bcf7c461..23e755063151476e176626d3eb54125faa746f59 100644
--- a/ekms/internal/kms/util.go
+++ b/ekms/internal/kms/util.go
@@ -10,7 +10,7 @@ import (
 	"github.com/google/uuid"
 )
 
-func randomItemFromMap[T comparable, M any](m map[T]M) (M, error) {
+func RandomItemFromMap[T comparable, M any](m map[T]M) (M, error) {
 	for _, item := range m {
 		return item, nil
 	}
@@ -19,14 +19,14 @@ func randomItemFromMap[T comparable, M any](m map[T]M) (M, error) {
 	return r, fmt.Errorf("Could not return a random item from map %v", m)
 }
 
-func randomItemFromMapAndRemove[T comparable, M any](m map[T]M) (M, error) {
+func RandomItemFromMapAndRemove[T comparable, M any](m map[T]M) (M, error) {
 	for key, item := range m {
 		delete(m, key)
 		return item, nil
 	}
 
 	var r M
-	return r, fmt.Errorf("Could not return a random item from map %v and delete it.", m)
+	return r, fmt.Errorf("Could not return a random item from map %v and delete it", m)
 }
 
 func keysOfMap[T comparable, M any](m map[T]M) []T {
@@ -59,7 +59,7 @@ func addETSIKeysToKeystore(keyStore *kmsKeyStore, keyContainer []etsi14.KeyConta
 }
 
 // NOTE: For demo purpose only.
-func sendKmsInfoMessage(url string, json []byte) error {
+func SendKmsInfoMessage(url string, json []byte) error {
 	request, err := http.NewRequest("POST", url, bytes.NewBuffer(json))
 	if err != nil {
 		return err