diff --git a/controller/northbound/server/auth_interceptor_test.go b/controller/northbound/server/auth_interceptor_test.go
index 86d5ecaa71aa94077d9ceaa09100096ab1a299bc..7de1c8c354df6ded32be7e7165b0c00d6a2197c6 100644
--- a/controller/northbound/server/auth_interceptor_test.go
+++ b/controller/northbound/server/auth_interceptor_test.go
@@ -17,7 +17,7 @@ import (
 	"google.golang.org/grpc/test/bufconn"
 )
 
-func getTestAuthInterceptorServer(t *testing.T) (*AuthInterceptor, *User, *Role, *sbiServer) {
+func getTestAuthInterceptorServer(t *testing.T) (*AuthInterceptor, *User, *Role, *SbiServer) {
 	jwtManager := rbac.NewJWTManager("test", time.Minute)
 	userStore := rbac.NewMemoryUserStore()
 	userService := rbac.NewUserService(userStore)
@@ -37,7 +37,7 @@ func getTestAuthInterceptorServer(t *testing.T) (*AuthInterceptor, *User, *Role,
 	return s, u, r, sbi
 }
 
-func dialer(interceptorServer *AuthInterceptor, userServer *User, roleServer *Role, sbiServer *sbiServer) func(context.Context, string) (net.Conn, error) {
+func dialer(interceptorServer *AuthInterceptor, userServer *User, roleServer *Role, sbiServer *SbiServer) func(context.Context, string) (net.Conn, error) {
 	listener := bufconn.Listen(1024 * 1024)
 
 	interceptor := interceptorServer
diff --git a/controller/northbound/server/core.go b/controller/northbound/server/core.go
index 9b6e5485f6effbb3c43ada289349cd6b382ebc12..5a167a4b46a10851871709d9916056f7d108cf8a 100644
--- a/controller/northbound/server/core.go
+++ b/controller/northbound/server/core.go
@@ -14,19 +14,21 @@ import (
 	"github.com/prometheus/client_golang/prometheus"
 )
 
-type core struct {
+// Core represents a core server
+type Core struct {
 	pb.UnimplementedCoreServiceServer
 	pndStore networkdomain.PndStore
 }
 
 // NewCoreServer receives a pndStore and returns a new coreServer.
-func NewCoreServer(pndStore networkdomain.PndStore) *core {
-	return &core{
+func NewCoreServer(pndStore networkdomain.PndStore) *Core {
+	return &Core{
 		pndStore: pndStore,
 	}
 }
 
-func (s core) GetPnd(ctx context.Context, request *pb.GetPndRequest) (*pb.GetPndResponse, error) {
+// GetPnd returns a existing pnd
+func (s Core) GetPnd(ctx context.Context, request *pb.GetPndRequest) (*pb.GetPndResponse, error) {
 	labels := prometheus.Labels{"service": "core", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -53,7 +55,8 @@ func (s core) GetPnd(ctx context.Context, request *pb.GetPndRequest) (*pb.GetPnd
 	}, nil
 }
 
-func (s core) GetPndList(ctx context.Context, request *pb.GetPndListRequest) (*pb.GetPndListResponse, error) {
+// GetPndList returns all existing pnds
+func (s Core) GetPndList(ctx context.Context, request *pb.GetPndListRequest) (*pb.GetPndListResponse, error) {
 	labels := prometheus.Labels{"service": "core", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -77,7 +80,8 @@ func (s core) GetPndList(ctx context.Context, request *pb.GetPndListRequest) (*p
 	}, nil
 }
 
-func (s core) CreatePndList(ctx context.Context, request *pb.CreatePndListRequest) (*pb.CreatePndListResponse, error) {
+// CreatePndList creates a pnd list
+func (s Core) CreatePndList(ctx context.Context, request *pb.CreatePndListRequest) (*pb.CreatePndListResponse, error) {
 	labels := prometheus.Labels{"service": "core", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -96,7 +100,8 @@ func (s core) CreatePndList(ctx context.Context, request *pb.CreatePndListReques
 	}, nil
 }
 
-func (s core) DeletePnd(ctx context.Context, request *pb.DeletePndRequest) (*pb.DeletePndResponse, error) {
+// DeletePnd deletes an existing pnd
+func (s Core) DeletePnd(ctx context.Context, request *pb.DeletePndRequest) (*pb.DeletePndResponse, error) {
 	labels := prometheus.Labels{"service": "core", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
diff --git a/controller/northbound/server/core_test.go b/controller/northbound/server/core_test.go
index ba01c8c4c930d12f0a80fc71e3ee89f568205aff..61b78f2fe5ef91c5e90b590364cb5298378960eb 100644
--- a/controller/northbound/server/core_test.go
+++ b/controller/northbound/server/core_test.go
@@ -41,7 +41,7 @@ func Test_core_Set(t *testing.T) {
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			s := core{
+			s := Core{
 				UnimplementedCoreServiceServer: pb.UnimplementedCoreServiceServer{},
 			}
 			got, err := s.CreatePndList(tt.args.ctx, tt.args.request)
@@ -86,7 +86,7 @@ func Test_core_GetPnd(t *testing.T) {
 
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			s := core{
+			s := Core{
 				UnimplementedCoreServiceServer: pb.UnimplementedCoreServiceServer{},
 			}
 			resp, err := s.GetPnd(tt.args.ctx, tt.args.request)
@@ -134,7 +134,7 @@ func Test_core_GetPndList(t *testing.T) {
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
-			s := core{
+			s := Core{
 				UnimplementedCoreServiceServer: pb.UnimplementedCoreServiceServer{},
 			}
 			resp, err := s.GetPndList(tt.args.ctx, tt.args.request)
diff --git a/controller/northbound/server/csbi.go b/controller/northbound/server/csbi.go
index f895803a07f192923d43bfaa4bf027a5d4ec0d09..31bf08b981c88d15094486408464f3ece382a6a4 100644
--- a/controller/northbound/server/csbi.go
+++ b/controller/northbound/server/csbi.go
@@ -19,20 +19,21 @@ import (
 	"google.golang.org/grpc/status"
 )
 
-type csbi struct {
+// Csbi represents a csbi server
+type Csbi struct {
 	cpb.UnimplementedCsbiServiceServer
-    pndStore networkdomain.PndStore
+	pndStore networkdomain.PndStore
 }
 
 // NewCsbiServer receives a pndStore and returns a new csbiServer.
-func NewCsbiServer(pndStore networkdomain.PndStore) *csbi {
-	return &csbi{
-        pndStore: pndStore,
+func NewCsbiServer(pndStore networkdomain.PndStore) *Csbi {
+	return &Csbi{
+		pndStore: pndStore,
 	}
 }
 
-
-func (s csbi) Hello(ctx context.Context, syn *cpb.Syn) (*cpb.Ack, error) {
+// Hello is used for tests
+func (s Csbi) Hello(ctx context.Context, syn *cpb.Syn) (*cpb.Ack, error) {
 	labels := prometheus.Labels{"service": "csbi", "rpc": "hello"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
diff --git a/controller/northbound/server/nbi.go b/controller/northbound/server/nbi.go
index 91079e4e569694de8b562159d8e1b07dd660ff8c..cd4e983516f8ef4d498ebdf7fb956333e796a0be 100644
--- a/controller/northbound/server/nbi.go
+++ b/controller/northbound/server/nbi.go
@@ -15,10 +15,10 @@ import (
 // NorthboundInterface is the representation of the
 // gRPC services used provided.
 type NorthboundInterface struct {
-	Pnd  *pndServer
-	Core *core
-	Csbi *csbi
-	Sbi  *sbiServer
+	Pnd  *PndServer
+	Core *Core
+	Csbi *Csbi
+	Sbi  *SbiServer
 	Auth *Auth
 	User *User
 	Role *Role
diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go
index fae7680bdb4e11aa37150fe38de604eb3c3c58fa..5124730e44bda354d81c0433a395783a5221b462 100644
--- a/controller/northbound/server/pnd.go
+++ b/controller/northbound/server/pnd.go
@@ -23,19 +23,21 @@ import (
 	"google.golang.org/grpc/status"
 )
 
-type pndServer struct {
+// PndServer implements a pnd server
+type PndServer struct {
 	ppb.UnimplementedPndServiceServer
 	pndStore networkdomain.PndStore
 }
 
 // NewPndServer receives a pndStore and returns a new pndServer.
-func NewPndServer(pndStore networkdomain.PndStore) *pndServer {
-	return &pndServer{
+func NewPndServer(pndStore networkdomain.PndStore) *PndServer {
+	return &PndServer{
 		pndStore: pndStore,
 	}
 }
 
-func (p pndServer) GetOnd(ctx context.Context, request *ppb.GetOndRequest) (*ppb.GetOndResponse, error) {
+// GetOnd gets a specific ond
+func (p PndServer) GetOnd(ctx context.Context, request *ppb.GetOndRequest) (*ppb.GetOndResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -67,7 +69,8 @@ func (p pndServer) GetOnd(ctx context.Context, request *ppb.GetOndRequest) (*ppb
 	}, nil
 }
 
-func (p pndServer) GetOndList(ctx context.Context, request *ppb.GetOndListRequest) (*ppb.GetOndListResponse, error) {
+// GetOndList returns a list of existing onds
+func (p PndServer) GetOndList(ctx context.Context, request *ppb.GetOndListRequest) (*ppb.GetOndListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -171,7 +174,8 @@ func genGnmiNotification(path *gnmi.Path, val any) (*gnmi.Notification, error) {
 	}, nil
 }
 
-func (p pndServer) GetSbi(ctx context.Context, request *ppb.GetSbiRequest) (*ppb.GetSbiResponse, error) {
+// GetSbi gets a specific sbi
+func (p PndServer) GetSbi(ctx context.Context, request *ppb.GetSbiRequest) (*ppb.GetSbiResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -210,7 +214,8 @@ func (p pndServer) GetSbi(ctx context.Context, request *ppb.GetSbiRequest) (*ppb
 	}, nil
 }
 
-func (p pndServer) GetSbiList(ctx context.Context, request *ppb.GetSbiListRequest) (*ppb.GetSbiListResponse, error) {
+// GetSbiList gets all existing sbis
+func (p PndServer) GetSbiList(ctx context.Context, request *ppb.GetSbiListRequest) (*ppb.GetSbiListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -274,7 +279,8 @@ func stringArrayToUUIDs(sid []string) ([]uuid.UUID, error) {
 	return UUIDs, nil
 }
 
-func (p pndServer) GetPath(ctx context.Context, request *ppb.GetPathRequest) (*ppb.GetPathResponse, error) {
+// GetPath gets a path on a ond
+func (p PndServer) GetPath(ctx context.Context, request *ppb.GetPathRequest) (*ppb.GetPathResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -320,7 +326,8 @@ func (p pndServer) GetPath(ctx context.Context, request *ppb.GetPathRequest) (*p
 	}, nil
 }
 
-func (p pndServer) GetChange(ctx context.Context, request *ppb.GetChangeRequest) (*ppb.GetChangeResponse, error) {
+// GetChange gets a specific change of a ond
+func (p PndServer) GetChange(ctx context.Context, request *ppb.GetChangeRequest) (*ppb.GetChangeResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -350,7 +357,8 @@ func (p pndServer) GetChange(ctx context.Context, request *ppb.GetChangeRequest)
 	}, nil
 }
 
-func (p pndServer) GetChangeList(ctx context.Context, request *ppb.GetChangeListRequest) (*ppb.GetChangeListResponse, error) {
+// GetChangeList gets all existing changes
+func (p PndServer) GetChangeList(ctx context.Context, request *ppb.GetChangeListRequest) (*ppb.GetChangeListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -426,7 +434,8 @@ func fillChanges(pnd networkdomain.NetworkDomain, all bool, cuid ...string) ([]*
 	return changes, nil
 }
 
-func (p pndServer) SetOndList(ctx context.Context, request *ppb.SetOndListRequest) (*ppb.SetOndListResponse, error) {
+// SetOndList updates the list of onds
+func (p PndServer) SetOndList(ctx context.Context, request *ppb.SetOndListRequest) (*ppb.SetOndListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -467,7 +476,8 @@ func (p pndServer) SetOndList(ctx context.Context, request *ppb.SetOndListReques
 	}, nil
 }
 
-func (p pndServer) SetChangeList(ctx context.Context, request *ppb.SetChangeListRequest) (*ppb.SetChangeListResponse, error) {
+// SetChangeList sets a list of changes
+func (p PndServer) SetChangeList(ctx context.Context, request *ppb.SetChangeListRequest) (*ppb.SetChangeListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -518,7 +528,8 @@ func (p pndServer) SetChangeList(ctx context.Context, request *ppb.SetChangeList
 	}, nil
 }
 
-func (p pndServer) SetPathList(ctx context.Context, request *ppb.SetPathListRequest) (*ppb.SetPathListResponse, error) {
+// SetPathList sets a list of paths
+func (p PndServer) SetPathList(ctx context.Context, request *ppb.SetPathListRequest) (*ppb.SetPathListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -558,7 +569,8 @@ func (p pndServer) SetPathList(ctx context.Context, request *ppb.SetPathListRequ
 	}, nil
 }
 
-func (p pndServer) SetSbiList(ctx context.Context, request *ppb.SetSbiListRequest) (*ppb.SetSbiListResponse, error) {
+// SetSbiList sets a list of sbis
+func (p PndServer) SetSbiList(ctx context.Context, request *ppb.SetSbiListRequest) (*ppb.SetSbiListResponse, error) {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "set"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)
@@ -613,7 +625,8 @@ func filterSbiType(sbiType ppb.SbiType) spb.Type {
 	return spbType
 }
 
-func (p pndServer) DeleteOnd(ctx context.Context, request *ppb.DeleteOndRequest) (*ppb.DeleteOndResponse, error) {
+// DeleteOnd deletes a ond
+func (p PndServer) DeleteOnd(ctx context.Context, request *ppb.DeleteOndRequest) (*ppb.DeleteOndResponse, error) {
 	pid, err := uuid.Parse(request.Pid)
 	if err != nil {
 		log.Error(err)
diff --git a/controller/northbound/server/pnd_test.go b/controller/northbound/server/pnd_test.go
index 5b7a6aa3c123f314859db18815507b4802c5ee70..3145caf573d354cabb3acfbe5246ecb058f871e8 100644
--- a/controller/northbound/server/pnd_test.go
+++ b/controller/northbound/server/pnd_test.go
@@ -67,7 +67,7 @@ func initUUIDs(t *testing.T) {
 	}
 }
 
-func getTestCoreServer(t *testing.T) *core {
+func getTestCoreServer(t *testing.T) *Core {
 	var err error
 	pndUUID, err = uuid.Parse(pndID)
 	if err != nil {
@@ -149,7 +149,7 @@ func getTestCoreServer(t *testing.T) *core {
 	return c
 }
 
-func getTestPndServer(t *testing.T) *pndServer {
+func getTestPndServer(t *testing.T) *PndServer {
 	var err error
 	pndUUID, err = uuid.Parse(pndID)
 	if err != nil {
diff --git a/controller/northbound/server/role_test.go b/controller/northbound/server/role_test.go
index afe0886b23a5e790d422f4f686a6a29d0c1ccc86..1f75f2bc410eac0764b83aff2b33aaa7caf8d037 100644
--- a/controller/northbound/server/role_test.go
+++ b/controller/northbound/server/role_test.go
@@ -280,7 +280,6 @@ func TestRole_UpdateRoles(t *testing.T) {
 }
 
 func TestRole_DeletePermissionsForRole(t *testing.T) {
-
 	type args struct {
 		ctx     context.Context
 		request *apb.DeletePermissionsForRoleRequest
diff --git a/controller/northbound/server/sbi.go b/controller/northbound/server/sbi.go
index 057d82db1b2307d81ae081938b55db731cff17df..a8358dd23f6521bffc7ff7afcaed810363afdd37 100644
--- a/controller/northbound/server/sbi.go
+++ b/controller/northbound/server/sbi.go
@@ -23,20 +23,21 @@ const (
 	MB
 )
 
-type sbiServer struct {
+// SbiServer represents a sbi server
+type SbiServer struct {
 	spb.UnimplementedSbiServiceServer
-    pndStore networkdomain.PndStore
+	pndStore networkdomain.PndStore
 }
 
 // NewSbiServer receives a pndStore and returns a new sbiServer.
-func NewSbiServer(pndStore networkdomain.PndStore) *sbiServer {
-	return &sbiServer{
-        pndStore: pndStore,
+func NewSbiServer(pndStore networkdomain.PndStore) *SbiServer {
+	return &SbiServer{
+		pndStore: pndStore,
 	}
 }
 
-
-func (s sbiServer) GetSchema(request *spb.GetSchemaRequest, stream spb.SbiService_GetSchemaServer) error {
+// GetSchema returns the schema of a sbi
+func (s SbiServer) GetSchema(request *spb.GetSchemaRequest, stream spb.SbiService_GetSchemaServer) error {
 	labels := prometheus.Labels{"service": "pnd", "rpc": "get schema"}
 	start := metrics.StartHook(labels, grpcRequestsTotal)
 	defer metrics.FinishHook(labels, start, grpcRequestDurationSecondsTotal, grpcRequestDurationSeconds)