diff --git a/.golangci.yml b/.golangci.yml
index 9b743a6ea6330ad14659f5117ba01bb2a9987a20..2141fe8030ba212bcf2a72c1dd7b5096475b6a01 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -33,7 +33,7 @@ issues:
 linters:
     # enable the specific needed linters
     # see here for full list: https://golangci-lint.run/usage/linters/
-    # linters to consider: gosimple, containedctx, contextcheck, depguard, errchkjson, errname, exhaustive, exhaustruct, forbidigo,
+    # linters to consider: gosimple, containedctx, contextcheck, depguard, errchkjson, exhaustive, exhaustruct, forbidigo,
     # gochecknoinits, gocognit, goconst, gocritic, gofumpt, gomnd, gosec, importas, lll, nestif, nilerr, nlreturn, noctx, nolintlint,
     # nosnakecase, paralleltest, prealloc, structcheck, testpackage, tparallel, unparam, wastedassign, wrapcheck, wsl
     disable-all: true
@@ -61,6 +61,7 @@ linters:
         - nilnil
         - predeclared
         - godot
+        - errname
 
 # custom settings for linters
 linters-settings:
diff --git a/cli/adapter/PndAdapter.go b/cli/adapter/PndAdapter.go
index 0cf7996831ddf2db56a67f5865247d362592e63f..1796f9636ded8b940c22fb42dd8a3de005fba8a7 100644
--- a/cli/adapter/PndAdapter.go
+++ b/cli/adapter/PndAdapter.go
@@ -37,12 +37,12 @@ func NewPndAdapter(id, endpoint string) (*PndAdapter, error) {
 
 // AddSbi adds an SBI to the PND Adapter. Currently not implemented.
 func (p *PndAdapter) AddSbi(s southbound.SouthboundInterface) error {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
 
 // RemoveSbi removes an SBI from the PND Adapter. Currently not implemented.
 func (p *PndAdapter) RemoveSbi(uuid.UUID) error {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
 
 // AddDevice adds a new device to the controller. The device name is optional.
diff --git a/controller/eventService/Service.go b/controller/eventService/Service.go
index cdf4aaad7ee16d97c06d2f9f6ddcca3c512247be..d9df91503a998f2311987663ef1abbc96db5d427 100644
--- a/controller/eventService/Service.go
+++ b/controller/eventService/Service.go
@@ -29,12 +29,12 @@ func NewEventService() (interfaces.Service, error) {
 
 	conn, err := amqp.Dial(amqpURIBuilder(config.AMQPPrefix, config.AMQPUser, config.AMQPPassword, config.AMQPHost, config.AMQPPort))
 	if err != nil {
-		return nil, &errors.ErrAMQPInitFail{Action: "failed to connect to RabbitMQ", Err: err}
+		return nil, &errors.AMQPInitFailError{Action: "failed to connect to RabbitMQ", Err: err}
 	}
 
 	ch, err := conn.Channel()
 	if err != nil {
-		return nil, &errors.ErrAMQPInitFail{Action: "failed to open a channel", Err: err}
+		return nil, &errors.AMQPInitFailError{Action: "failed to open a channel", Err: err}
 	}
 
 	return &EventService{
@@ -54,12 +54,12 @@ func (e *EventService) PublishEvent(topic string, event event.Event) error {
 		nil,   // arguments
 	)
 	if err != nil {
-		return &errors.ErrAMQPInitFail{Action: "failed declaring queue", Err: err}
+		return &errors.AMQPInitFailError{Action: "failed declaring queue", Err: err}
 	}
 
 	eventBody, err := json.Marshal(event)
 	if err != nil {
-		return &errors.ErrCouldNotMarshall{Identifier: topic + " " + event.EntityID.String(), Type: event.Type, Err: err}
+		return &errors.CouldNotMarshallError{Identifier: topic + " " + event.EntityID.String(), Type: event.Type, Err: err}
 	}
 
 	err = e.channel.PublishWithContext(
@@ -73,7 +73,7 @@ func (e *EventService) PublishEvent(topic string, event event.Event) error {
 			Body:        eventBody,
 		})
 	if err != nil {
-		return &errors.ErrAMQPMessageFail{Action: "failed to publish message", Err: err}
+		return &errors.AMQPMessageFailError{Action: "failed to publish message", Err: err}
 	}
 
 	return nil
diff --git a/controller/interfaces/plugin/plugin.go b/controller/interfaces/plugin/plugin.go
index 9dcae112198986d0e04f51ece22678a5fb669957..04db10fcbb62c15747c3d3dd915e73a823524511 100644
--- a/controller/interfaces/plugin/plugin.go
+++ b/controller/interfaces/plugin/plugin.go
@@ -78,7 +78,7 @@ func (m *Manifest) Validate() error {
 		errs = append(errs, fmt.Errorf("Version has to be of form: vX.X.X"))
 	}
 	if len(errs) != 0 {
-		return errors.ErrorList{Errors: errs}
+		return errors.CombinedErrListError{Errors: errs}
 	}
 	return nil
 }
diff --git a/controller/northbound/server/pnd.go b/controller/northbound/server/pnd.go
index 3805364c171aecda96454fa7e62bfb300c8506a1..88796bad407eeec48a62b32cfe1654e58a6492ec 100644
--- a/controller/northbound/server/pnd.go
+++ b/controller/northbound/server/pnd.go
@@ -443,7 +443,7 @@ func fillChanges(pnd networkdomain.NetworkDomain, all bool, cuid ...string) ([]*
 	default:
 		var err error
 		if len(cuid) == 0 {
-			return nil, &errors.ErrInvalidParameters{
+			return nil, &errors.InvalidParametersError{
 				Func:  fillChanges,
 				Param: "length of 'did' cannot be '0' when 'all' is set to 'false'",
 			}
@@ -556,7 +556,7 @@ func (p PndServer) SetChangeList(ctx context.Context, request *ppb.SetChangeList
 				return nil, status.Errorf(codes.Aborted, "%v", err)
 			}
 		default:
-			return nil, &errors.ErrInvalidParameters{
+			return nil, &errors.InvalidParametersError{
 				Param: r.Op,
 			}
 		}
diff --git a/controller/nucleus/databaseDeviceStore.go b/controller/nucleus/databaseDeviceStore.go
index a7664706c391a2de8e0e4593cc71b360dea40a8b..b728c5d748399e873980ed877780e521370e3605 100644
--- a/controller/nucleus/databaseDeviceStore.go
+++ b/controller/nucleus/databaseDeviceStore.go
@@ -61,13 +61,13 @@ func (s *DatabaseDeviceStore) getByID(idOfDevice uuid.UUID) (loadedDevice device
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfDevice.String()}})
 	if result == nil {
-		return loadedDevice, errors.ErrCouldNotFind{ID: idOfDevice}
+		return loadedDevice, errors.CouldNotFindError{ID: idOfDevice}
 	}
 
 	err = result.Decode(&loadedDevice)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedDevice, errors.ErrCouldNotMarshall{Identifier: idOfDevice, Type: loadedDevice, Err: err}
+		return loadedDevice, errors.CouldNotMarshallError{Identifier: idOfDevice, Type: loadedDevice, Err: err}
 	}
 
 	return loadedDevice, nil
@@ -86,13 +86,13 @@ func (s *DatabaseDeviceStore) getByName(nameOfDevice string) (loadedDevice devic
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfDevice}})
 	if result == nil {
-		return loadedDevice, errors.ErrCouldNotFind{Name: nameOfDevice}
+		return loadedDevice, errors.CouldNotFindError{Name: nameOfDevice}
 	}
 
 	err = result.Decode(&loadedDevice)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedDevice, errors.ErrCouldNotMarshall{Identifier: nameOfDevice, Type: loadedDevice, Err: err}
+		return loadedDevice, errors.CouldNotMarshallError{Identifier: nameOfDevice, Type: loadedDevice, Err: err}
 	}
 
 	return loadedDevice, nil
@@ -127,7 +127,7 @@ func (s *DatabaseDeviceStore) GetAll() (loadedDevices []device.LoadedDevice, err
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Type: loadedDevices, Err: err}
+		return nil, errors.CouldNotMarshallError{Type: loadedDevices, Err: err}
 	}
 
 	return loadedDevices, nil
@@ -149,7 +149,7 @@ func (s *DatabaseDeviceStore) Add(deviceToAdd device.Device) (err error) {
 		InsertOne(ctx, deviceToAdd)
 	if err != nil {
 		log.Printf("Could not create Device: %v", err)
-		return errors.ErrCouldNotCreate{Identifier: deviceToAdd.ID(), Type: deviceToAdd, Err: err}
+		return errors.CouldNotCreateError{Identifier: deviceToAdd.ID(), Type: deviceToAdd, Err: err}
 	}
 
 	return nil
@@ -185,7 +185,7 @@ func (s *DatabaseDeviceStore) Update(deviceToUpdate device.Device) (err error) {
 	if err != nil {
 		log.Printf("Could not update Device: %v", err)
 
-		return errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err}
+		return errors.CouldNotUpdateError{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err}
 	}
 
 	return nil
@@ -206,7 +206,7 @@ func (s *DatabaseDeviceStore) Delete(deviceToDelete device.Device) (err error) {
 	collection := db.Collection(s.storeName)
 	_, err = collection.DeleteOne(ctx, bson.D{primitive.E{Key: deviceToDelete.ID().String()}})
 	if err != nil {
-		return errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err}
+		return errors.CouldNotDeleteError{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err}
 	}
 
 	return nil
diff --git a/controller/nucleus/databasePndStore.go b/controller/nucleus/databasePndStore.go
index 6a8ca96036f1b4884c2001840620f8c528f90db2..03fb9c8584598dec3e32e1eca027d6dc1f8d7ff5 100644
--- a/controller/nucleus/databasePndStore.go
+++ b/controller/nucleus/databasePndStore.go
@@ -43,14 +43,14 @@ func (s *DatabasePndStore) Get(query store.Query) (newPnd networkdomain.NetworkD
 	collection := db.Collection(s.pndStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.ID.String()}})
 	if result == nil {
-		return nil, errors.ErrCouldNotFind{ID: query.ID}
+		return nil, errors.CouldNotFindError{ID: query.ID}
 	}
 
 	err = result.Decode(&loadedPND)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedPND, Err: err}
+		return nil, errors.CouldNotMarshallError{Identifier: query.ID, Type: loadedPND, Err: err}
 	}
 
 	csbiClient, err := s.getCsbiClient()
@@ -103,7 +103,7 @@ func (s *DatabasePndStore) GetAll() (pnds []networkdomain.NetworkDomain, err err
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Type: loadedPnds, Err: err}
+		return nil, errors.CouldNotMarshallError{Type: loadedPnds, Err: err}
 	}
 
 	csbiClient, err := s.getCsbiClient()
@@ -144,7 +144,7 @@ func (s *DatabasePndStore) Add(pndToAdd networkdomain.NetworkDomain) (err error)
 		Collection(s.pndStoreName).
 		InsertOne(ctx, pndToAdd)
 	if err != nil {
-		return errors.ErrCouldNotCreate{Identifier: pndToAdd.ID(), Type: pndToAdd, Err: err}
+		return errors.CouldNotCreateError{Identifier: pndToAdd.ID(), Type: pndToAdd, Err: err}
 	}
 
 	return nil
@@ -165,7 +165,7 @@ func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err
 	collection := db.Collection(s.pndStoreName)
 	_, err = collection.DeleteOne(ctx, bson.D{primitive.E{Key: pndToDelete.ID().String()}})
 	if err != nil {
-		return errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err}
+		return errors.CouldNotDeleteError{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err}
 	}
 
 	// TODO: Delete all assosicated devices + SBIs
@@ -178,7 +178,7 @@ func (s *DatabasePndStore) Delete(pndToDelete networkdomain.NetworkDomain) (err
 func (s *DatabasePndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) {
 	ch, ok := s.pendingChannels[id]
 	if !ok {
-		return nil, &errors.ErrCouldNotFind{ID: id}
+		return nil, &errors.CouldNotFindError{ID: id}
 	}
 	return ch, nil
 }
diff --git a/controller/nucleus/databaseSbiStore.go b/controller/nucleus/databaseSbiStore.go
index 77e4d4d332b37ffc00d3e048829360ac440838e7..6e41b167e1f07a32e766e4498a8cf48a752d3994 100644
--- a/controller/nucleus/databaseSbiStore.go
+++ b/controller/nucleus/databaseSbiStore.go
@@ -38,7 +38,7 @@ func (s *DatabaseSbiStore) Add(sbiToAdd southbound.SouthboundInterface) (err err
 			return nil
 		}
 
-		return errors.ErrCouldNotCreate{Identifier: sbiToAdd.ID(), Type: sbiToAdd, Err: err}
+		return errors.CouldNotCreateError{Identifier: sbiToAdd.ID(), Type: sbiToAdd, Err: err}
 	}
 
 	return nil
@@ -59,7 +59,7 @@ func (s *DatabaseSbiStore) Delete(sbiToDelete southbound.SouthboundInterface) (e
 		Collection(s.sbiStoreName).
 		DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: sbiToDelete.ID().String()}})
 	if err != nil {
-		return errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err}
+		return errors.CouldNotDeleteError{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err}
 	}
 
 	return nil
@@ -83,14 +83,14 @@ func (s *DatabaseSbiStore) Get(query store.Query) (loadedSbi southbound.LoadedSb
 	collection := db.Collection(s.sbiStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: query.ID.String()}})
 	if result == nil {
-		return loadedSbi, errors.ErrCouldNotFind{ID: query.ID}
+		return loadedSbi, errors.CouldNotFindError{ID: query.ID}
 	}
 
 	err = result.Decode(&loadedSbi)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return loadedSbi, errors.ErrCouldNotMarshall{Identifier: query.ID, Type: loadedSbi, Err: err}
+		return loadedSbi, errors.CouldNotMarshallError{Identifier: query.ID, Type: loadedSbi, Err: err}
 	}
 
 	return loadedSbi, nil
@@ -124,7 +124,7 @@ func (s *DatabaseSbiStore) GetAll() (loadedSbis []southbound.LoadedSbi, err erro
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Type: loadedSbis, Err: err}
+		return nil, errors.CouldNotMarshallError{Type: loadedSbis, Err: err}
 	}
 
 	return loadedSbis, nil
diff --git a/controller/nucleus/device.go b/controller/nucleus/device.go
index ae4057eccd389a94aeeadb4559150444e7234b3e..a3adb766ed0b48cbfd85470bc19126a76c752ef2 100644
--- a/controller/nucleus/device.go
+++ b/controller/nucleus/device.go
@@ -42,7 +42,7 @@ func NewDevice(name string, uuidInput uuid.UUID, opt *tpb.TransportOption, sbi s
 	}
 	ygotDeepCopy, ok := root.(ygot.GoStruct)
 	if !ok {
-		return nil, &errors.ErrInvalidTypeAssertion{
+		return nil, &errors.InvalidTypeAssertionError{
 			Value: root,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
@@ -200,7 +200,7 @@ func createValidatedCopy(d device.Device) (ygot.ValidatedGoStruct, error) {
 
 	validatedCpy, ok := cpy.(ygot.ValidatedGoStruct)
 	if !ok {
-		return nil, errors.ErrInvalidTypeAssertion{
+		return nil, errors.InvalidTypeAssertionError{
 			Value: validatedCpy,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
diff --git a/controller/nucleus/deviceFilesystemStore.go b/controller/nucleus/deviceFilesystemStore.go
index ec10e84682ab6684ff39e6bdc8c1d95dde6eb747..d519d149f5bb0602177c86cc9597f68ea4d5e5a7 100644
--- a/controller/nucleus/deviceFilesystemStore.go
+++ b/controller/nucleus/deviceFilesystemStore.go
@@ -81,7 +81,7 @@ func (s *FilesystemDeviceStore) Get(query store.Query) (device.LoadedDevice, err
 		}
 	}
 
-	return device, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+	return device, &errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 }
 
 // GetAll returns all stored devices.
@@ -146,7 +146,7 @@ func (s *FilesystemDeviceStore) Update(deviceToUpdate device.Device) error {
 		}
 	}
 
-	return &errors.ErrCouldNotUpdate{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err}
+	return &errors.CouldNotUpdateError{Identifier: deviceToUpdate.ID(), Type: deviceToUpdate, Err: err}
 }
 
 // Delete deletes a device from the device store.
@@ -174,5 +174,5 @@ func (s *FilesystemDeviceStore) Delete(deviceToDelete device.Device) error {
 		}
 	}
 
-	return &errors.ErrCouldNotDelete{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err}
+	return &errors.CouldNotDeleteError{Identifier: deviceToDelete.ID(), Type: deviceToDelete, Err: err}
 }
diff --git a/controller/nucleus/deviceWatcher.go b/controller/nucleus/deviceWatcher.go
index d6326e43a54e48ef378c05985380358d37023cec..1f6f2154bab5cd8c0f04c31446dc359a64a41c53 100644
--- a/controller/nucleus/deviceWatcher.go
+++ b/controller/nucleus/deviceWatcher.go
@@ -121,7 +121,7 @@ func (d *DeviceWatcher) StopAndRemoveDeviceSubscription(subID uuid.UUID) {
 func (d *DeviceWatcher) handleSubscribeResponse(resp *gpb.SubscribeResponse, subscriptionInfo *transport.SubscriptionInformation) {
 	switch resp := resp.Response.(type) {
 	case *gpb.SubscribeResponse_Error:
-		log.Error(&errors.ErrSubscribeResponse{
+		log.Error(&errors.SubscribeResponseError{
 			PndID:      subscriptionInfo.PndID,
 			DeviceID:   subscriptionInfo.DeviceID,
 			DeviceName: subscriptionInfo.DeviceName,
@@ -129,7 +129,7 @@ func (d *DeviceWatcher) handleSubscribeResponse(resp *gpb.SubscribeResponse, sub
 		})
 	case *gpb.SubscribeResponse_SyncResponse:
 		if !resp.SyncResponse {
-			log.Error(&errors.ErrSubscribeSyncResponse{
+			log.Error(&errors.SubscribeSyncResponseError{
 				PndID:      subscriptionInfo.PndID,
 				DeviceID:   subscriptionInfo.DeviceID,
 				DeviceName: subscriptionInfo.DeviceName,
diff --git a/controller/nucleus/errors/errors.go b/controller/nucleus/errors/errors.go
index 483f4af8f3ac56f4956628b4457288a7799c17d1..c3ec43e67c27dbcb017aaf9c2d557bffa47b3af3 100644
--- a/controller/nucleus/errors/errors.go
+++ b/controller/nucleus/errors/errors.go
@@ -7,140 +7,140 @@ import (
 	"github.com/openconfig/ygot/ygot"
 )
 
-// ErrNilClient implements the Error interface and is called if a GNMI Client is nil.
-type ErrNilClient struct {
+// NilClientError implements the Error interface and is called if a GNMI Client is nil.
+type NilClientError struct {
 }
 
-func (e *ErrNilClient) Error() string {
+func (e *NilClientError) Error() string {
 	return fmt.Sprint("client cannot be nil")
 }
 
-// ErrNil implements the Error interface and is called if a struct is nil.
-type ErrNil struct {
+// NilError implements the Error interface and is called if a struct is nil.
+type NilError struct {
 }
 
-func (e *ErrNil) Error() string {
+func (e *NilError) Error() string {
 	return fmt.Sprint("struct cannot be nil")
 }
 
-// ErrAlreadyExists implements the Error interface and is called if a specific ID
+// AlreadyExistsError implements the Error interface and is called if a specific ID
 // of a storable item already exists.
-type ErrAlreadyExists struct {
+type AlreadyExistsError struct {
 	Item interface{}
 }
 
-func (e *ErrAlreadyExists) Error() string {
+func (e *AlreadyExistsError) Error() string {
 	return fmt.Sprintf("%T %v already exists", e.Item, e.Item)
 }
 
-// ErrInvalidUUID implements the Error interface and is called if a UUID is not valid.
-type ErrInvalidUUID struct {
+// InvalidUUIDError implements the Error interface and is called if a UUID is not valid.
+type InvalidUUIDError struct {
 	DeviceName string
 }
 
-func (e *ErrInvalidUUID) Error() string {
+func (e *InvalidUUIDError) Error() string {
 	return fmt.Sprint("UUID not valid")
 }
 
-// ErrInvalidTypeAssertion implements the Error interface and is called if the
+// InvalidTypeAssertionError implements the Error interface and is called if the
 // type of a storable item does not correspond to the expected type.
-type ErrInvalidTypeAssertion struct {
+type InvalidTypeAssertionError struct {
 	Value interface{}
 	Type  interface{}
 }
 
-func (e ErrInvalidTypeAssertion) Error() string {
+func (e InvalidTypeAssertionError) Error() string {
 	return fmt.Sprintf("%v does not implement %v", reflect.TypeOf(e.Value).Elem(), reflect.TypeOf(e.Type).Elem())
 }
 
-// ErrUnsupportedPath implements the Error interface and is called if the
+// UnsupportedPathError implements the Error interface and is called if the
 // given path is not supported.
-type ErrUnsupportedPath struct {
+type UnsupportedPathError struct {
 	Path interface{}
 }
 
-func (e ErrUnsupportedPath) Error() string {
+func (e UnsupportedPathError) Error() string {
 	return fmt.Sprintf("path %v is not supported", e.Path)
 }
 
-// ErrPathNotFound implements the Error interface and is called if the
+// PathNotFoundError implements the Error interface and is called if the
 // given path is not supported.
-type ErrPathNotFound struct {
+type PathNotFoundError struct {
 	Path interface{}
 	Err  error
 }
 
-func (e ErrPathNotFound) Error() string {
+func (e PathNotFoundError) Error() string {
 	return fmt.Sprintf("path %v not found: %v", e.Path, e.Err)
 }
 
-// ErrNotYetImplemented implements the Error interface and is called if a function
+// NotYetImplementedError implements the Error interface and is called if a function
 // is not implemented yet.
-type ErrNotYetImplemented struct{}
+type NotYetImplementedError struct{}
 
-func (e ErrNotYetImplemented) Error() string {
+func (e NotYetImplementedError) Error() string {
 	return fmt.Sprint("function not yet implemented")
 }
 
-// ErrInvalidParameters implements the Error interface and is called if the wrong
+// InvalidParametersError implements the Error interface and is called if the wrong
 // or no parameters have been provided.
-type ErrInvalidParameters struct {
+type InvalidParametersError struct {
 	Func  interface{}
 	Param interface{}
 }
 
-func (e ErrInvalidParameters) Error() string {
+func (e InvalidParametersError) Error() string {
 	return fmt.Sprintf("invalid parameters for %v: %v", e.Func, e.Param)
 }
 
-// ErrInvalidTransportOptions implements the Error interface and is called if the
+// InvalidTransportOptionsError implements the Error interface and is called if the
 // wrong TransportOptions have been provided.
-type ErrInvalidTransportOptions struct {
+type InvalidTransportOptionsError struct {
 	Opt interface{}
 }
 
-func (e ErrInvalidTransportOptions) Error() string {
+func (e InvalidTransportOptionsError) Error() string {
 	return fmt.Sprintf("invalid transport options: %v", reflect.TypeOf(e.Opt))
 }
 
-// ErrOperationNotSupported implements the Error interface and is called if the
+// OperationNotSupportedError implements the Error interface and is called if the
 // wrong Operation has been provided.
-type ErrOperationNotSupported struct {
+type OperationNotSupportedError struct {
 	Op interface{}
 }
 
-func (e ErrOperationNotSupported) Error() string {
+func (e OperationNotSupportedError) Error() string {
 	return fmt.Sprintf("transport operation not supported: %v", reflect.TypeOf(e.Op))
 }
 
-// ErrUnsupportedSbiType implements the Error interface and is called if the
+// UnsupportedSbiTypeError implements the Error interface and is called if the
 // wrong Type for a SBI has been provided.
-type ErrUnsupportedSbiType struct {
+type UnsupportedSbiTypeError struct {
 	Type interface{}
 }
 
-func (e ErrUnsupportedSbiType) Error() string {
+func (e UnsupportedSbiTypeError) Error() string {
 	return fmt.Sprintf("SBI type not supported: %v", e.Type)
 }
 
-// ErrPluginVersion implements the Error interface and is called if the Version
+// PluginVersionError implements the Error interface and is called if the Version
 // of a Plugin is older than a Plugin in use.
-type ErrPluginVersion struct {
+type PluginVersionError struct {
 	PlugID, ProvidedVer, UsedVer string
 }
 
-func (e ErrPluginVersion) Error() string {
+func (e PluginVersionError) Error() string {
 	return fmt.Sprintf("Version of Plugin: %s is older than the one in use. Provided: %s, in use: %s", e.PlugID, e.ProvidedVer, e.UsedVer)
 }
 
-// ErrorList implements the Error interface and is called if a slice of errors
+// CombinedErrListError implements the Error interface and is called if a slice of errors
 // should be returned. The slice of errors is combined into a single error
 // message and returned.
-type ErrorList struct {
+type CombinedErrListError struct {
 	Errors []error
 }
 
-func (e ErrorList) Error() string {
+func (e CombinedErrListError) Error() string {
 	combinedErrString := "Errors found:"
 	for i, err := range e.Errors {
 		errString := fmt.Sprintf("\n %v. %v", i+1, err)
@@ -149,130 +149,130 @@ func (e ErrorList) Error() string {
 	return combinedErrString
 }
 
-// ErrTypeNotSupported implements the Error interface and is called if the
+// TypeNotSupportedError implements the Error interface and is called if the
 // wrong Type has been provided.
-type ErrTypeNotSupported struct {
+type TypeNotSupportedError struct {
 	Type interface{}
 }
 
-func (e ErrTypeNotSupported) Error() string {
+func (e TypeNotSupportedError) Error() string {
 	return fmt.Sprintf("type not supported: %v", reflect.TypeOf(e.Type))
 }
 
-// ErrCouldNotMarshall implements Error interface and is called if a
+// CouldNotMarshallError implements Error interface and is called if a
 // database response can not be parsed.
-type ErrCouldNotMarshall struct {
+type CouldNotMarshallError struct {
 	Identifier any
 	Type       any
 	Err        error
 }
 
-func (e ErrCouldNotMarshall) Error() string {
+func (e CouldNotMarshallError) Error() string {
 	return fmt.Sprintf("could not marshall Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err)
 }
 
-// ErrCouldNotUpdate implements the Error interface and is called if a
+// CouldNotUpdateError implements the Error interface and is called if a
 // stored item can not be updated.
-type ErrCouldNotUpdate struct {
+type CouldNotUpdateError struct {
 	Identifier any
 	Type       any
 	Err        error
 }
 
-func (e ErrCouldNotUpdate) Error() string {
+func (e CouldNotUpdateError) Error() string {
 	return fmt.Sprintf("could not update Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err)
 }
 
-// ErrCouldNotFind implements the Error interface and is called if a
+// CouldNotFindError implements the Error interface and is called if a
 // stored item can not be found.
-type ErrCouldNotFind struct {
+type CouldNotFindError struct {
 	ID   any
 	Name string
 }
 
-func (e ErrCouldNotFind) Error() string {
+func (e CouldNotFindError) Error() string {
 	return fmt.Sprintf("ID: %v or Name: %v not found", e.ID, e.Name)
 }
 
-// ErrCouldNotCreate implements the Error interface and is called if a
+// CouldNotCreateError implements the Error interface and is called if a
 // stored item can not be found.
-type ErrCouldNotCreate struct {
+type CouldNotCreateError struct {
 	Identifier any
 	Type       any
 	Err        error
 }
 
-func (e ErrCouldNotCreate) Error() string {
+func (e CouldNotCreateError) Error() string {
 	return fmt.Sprintf("could not create Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err)
 }
 
-// ErrCouldNotDelete implements the Error interface and is called if a
+// CouldNotDeleteError implements the Error interface and is called if a
 // stored item can not be deleted.
-type ErrCouldNotDelete struct {
+type CouldNotDeleteError struct {
 	Identifier any
 	Type       any
 	Err        error
 }
 
-func (e ErrCouldNotDelete) Error() string {
+func (e CouldNotDeleteError) Error() string {
 	return fmt.Sprintf("could not delete Identifier: %v of Type: %T, Internal error: %v", e.Identifier, e.Type, e.Err)
 }
 
-// ErrNoNewChanges implements the Error interface and is called if a the
+// NoNewChangesError implements the Error interface and is called if a the
 // gNMI-Notification created from ygot.Diff does not contain any `updates` or
 // `deletes`.
-type ErrNoNewChanges struct {
+type NoNewChangesError struct {
 	Original ygot.GoStruct
 	Modified ygot.GoStruct
 }
 
-func (e ErrNoNewChanges) Error() string {
+func (e NoNewChangesError) Error() string {
 	return fmt.Sprintf("There are no changes between %v and %v", e.Original, e.Modified)
 }
 
-// ErrAMQPInitFail implements the Error interface and is called if there is any issue related to
+// AMQPInitFailError implements the Error interface and is called if there is any issue related to
 // the setup of the event management.
-type ErrAMQPInitFail struct {
+type AMQPInitFailError struct {
 	Action string
 	Err    error
 }
 
-func (e ErrAMQPInitFail) Error() string {
+func (e AMQPInitFailError) Error() string {
 	return fmt.Sprintf("Action: %s, Internal error: %v", e.Action, e.Err)
 }
 
-// ErrAMQPMessageFail implements the Error interface and is called if there is any issue with sending
+// AMQPMessageFailError implements the Error interface and is called if there is any issue with sending
 // or receiving messages.
-type ErrAMQPMessageFail struct {
+type AMQPMessageFailError struct {
 	Action string
 	Err    error
 }
 
-func (e ErrAMQPMessageFail) Error() string {
+func (e AMQPMessageFailError) Error() string {
 	return fmt.Sprintf("Action: %s, Internal error: %v", e.Action, e.Err)
 }
 
-// ErrSubscribeResponse implements the Error interface and is called if there is an issue during a ongoing
+// SubscribeResponseError implements the Error interface and is called if there is an issue during a ongoing
 // gNMI Subscription.
-type ErrSubscribeResponse struct {
+type SubscribeResponseError struct {
 	PndID      string
 	DeviceID   string
 	DeviceName string
 	Err        string
 }
 
-func (e ErrSubscribeResponse) Error() string {
+func (e SubscribeResponseError) Error() string {
 	return fmt.Sprintf("Subscribe failed, PndID: %s, DeviceID: %s, DeviceName: %s, Internal error: %s", e.PndID, e.DeviceID, e.DeviceName, e.Err)
 }
 
-// ErrSubscribeSyncResponse implements the Error interface and is called if there is an issue syncing a
+// SubscribeSyncResponseError implements the Error interface and is called if there is an issue syncing a
 // gNMI Subscription.
-type ErrSubscribeSyncResponse struct {
+type SubscribeSyncResponseError struct {
 	PndID      string
 	DeviceID   string
 	DeviceName string
 }
 
-func (e ErrSubscribeSyncResponse) Error() string {
+func (e SubscribeSyncResponseError) Error() string {
 	return fmt.Sprintf("Sync failed, PndID: %s, DeviceID: %s, DeviceName: %s", e.PndID, e.DeviceID, e.DeviceName)
 }
diff --git a/controller/nucleus/gnmi_transport.go b/controller/nucleus/gnmi_transport.go
index f5a4482c7fe0a4bbfdb4dafa1d0d7efe776d7d6b..7a07683aca259cb79fafa46077dff35d60f86dee 100644
--- a/controller/nucleus/gnmi_transport.go
+++ b/controller/nucleus/gnmi_transport.go
@@ -40,12 +40,12 @@ type Gnmi struct {
 // Do not call directly. Use NewTransport() instead.
 func newGnmiTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterface) (*Gnmi, error) {
 	if opts == nil || sbi == nil {
-		return nil, &errors.ErrInvalidParameters{
+		return nil, &errors.InvalidParametersError{
 			Func:  newGnmiTransport,
 			Param: "'opts' and 'sbi' can not be nil",
 		}
 	} else if opts.TransportOption == nil {
-		return nil, &errors.ErrInvalidParameters{
+		return nil, &errors.InvalidParametersError{
 			Func:  newGnmiTransport,
 			Param: "'opts.TransportOption' can not be nil",
 		}
@@ -82,7 +82,7 @@ func newGnmiTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterf
 // Get takes a slice of gnmi paths, splits them and calls get for each one of them.
 func (g *Gnmi) Get(ctx context.Context, params ...string) (interface{}, error) {
 	if g.client == nil {
-		return nil, &errors.ErrNilClient{}
+		return nil, &errors.NilClientError{}
 	}
 	ctx = gnmi.NewContext(ctx, g.config)
 	paths := gnmi.SplitPaths(params)
@@ -96,7 +96,7 @@ func (g *Gnmi) Set(ctx context.Context, payload change.Payload, path string, sch
 		return err
 	}
 	if g.client == nil {
-		return &errors.ErrNilClient{}
+		return &errors.NilClientError{}
 	}
 	ctx = gnmi.NewContext(ctx, g.config)
 	return g.applyDiff(ctx, payload, p, schema)
@@ -120,7 +120,7 @@ func (g *Gnmi) applyDiff(ctx context.Context, payload change.Payload, path *gpb.
 	}
 
 	if isGNMINotificationEmpty(diff) {
-		return errors.ErrNoNewChanges{Original: payload.Original, Modified: payload.Modified}
+		return errors.NoNewChangesError{Original: payload.Original, Modified: payload.Modified}
 	}
 
 	var json []byte
@@ -148,7 +148,7 @@ func (g *Gnmi) applyDiff(ctx context.Context, payload change.Payload, path *gpb.
 		}
 
 		if len(nodes) == 0 || err != nil || util.IsValueNil(nodes[0].Data) {
-			return errors.ErrPathNotFound{Path: path, Err: err}
+			return errors.PathNotFoundError{Path: path, Err: err}
 		}
 
 		json, err = ygot.Marshal7951(nodes[0].Data, &ygot.RFC7951JSONConfig{AppendModuleName: true})
@@ -187,7 +187,7 @@ func createSetRequest(ctx context.Context, diff *gpb.Notification, json []byte,
 				},
 			}}
 		default:
-			return nil, &errors.ErrOperationNotSupported{Op: op}
+			return nil, &errors.OperationNotSupportedError{Op: op}
 		}
 	} else if diff.Delete != nil {
 		req.Delete = diff.Delete
@@ -198,7 +198,7 @@ func createSetRequest(ctx context.Context, diff *gpb.Notification, json []byte,
 //Subscribe subscribes to a gNMI target.
 func (g *Gnmi) Subscribe(ctx context.Context, params ...string) error {
 	if g.client == nil {
-		return &errors.ErrNilClient{}
+		return &errors.NilClientError{}
 	}
 	return g.subscribe(ctx)
 }
@@ -207,7 +207,7 @@ func (g *Gnmi) Subscribe(ctx context.Context, params ...string) error {
 // the callback function handles the responses received from the subscription.
 func (g *Gnmi) ControlPlaneSubscribe(ctx context.Context, subscribeCallbackFunc tpInterface.HandleSubscribeResponse, subscriptionInfo *tpInterface.SubscriptionInformation) error {
 	if g.client == nil {
-		return &errors.ErrNilClient{}
+		return &errors.NilClientError{}
 	}
 
 	return g.controlPlaneSubscribe(ctx, subscribeCallbackFunc, subscriptionInfo)
@@ -224,14 +224,14 @@ func (g *Gnmi) Type() string {
 func (g *Gnmi) ProcessResponse(resp interface{}, root interface{}, s *ytypes.Schema) error {
 	d, ok := root.(ygot.ValidatedGoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: root,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
 	}
 	r, ok := resp.(*gpb.GetResponse)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: resp,
 			Type:  &gpb.GetResponse{},
 		}
@@ -250,7 +250,7 @@ func (g *Gnmi) ProcessResponse(resp interface{}, root interface{}, s *ytypes.Sch
 func (g *Gnmi) ProcessControlPlaneSubscribeResponse(resp *gpb.SubscribeResponse_Update, root any, schema *ytypes.Schema) error {
 	dModel, ok := root.(ygot.ValidatedGoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: root,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
@@ -365,7 +365,7 @@ func (g *Gnmi) get(ctx context.Context, paths [][]string, origin string) (interf
 // and returns any response.
 func (g *Gnmi) getWithRequest(ctx context.Context, req *gpb.GetRequest) (interface{}, error) {
 	if req == nil {
-		return nil, &errors.ErrNil{}
+		return nil, &errors.NilError{}
 	}
 	log.WithFields(log.Fields{
 		"target": g.Options.Address,
@@ -384,7 +384,7 @@ func (g *Gnmi) subscribe(ctx context.Context) error {
 	ctx = gnmi.NewContext(ctx, g.config)
 	opts, ok := ctx.Value(types.CtxKeyOpts).(*gnmi.SubscribeOptions)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: ctx.Value(types.CtxKeyOpts),
 			Type:  &gnmi.SubscribeOptions{},
 		}
@@ -415,7 +415,7 @@ func (g *Gnmi) controlPlaneSubscribe(ctx context.Context, subcribeCallbackFunc f
 	ctx = gnmi.NewContext(ctx, g.config)
 	opts, ok := ctx.Value(types.CtxKeyOpts).(*gnmi.SubscribeOptions)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: ctx.Value(types.CtxKeyOpts),
 			Type:  &gnmi.SubscribeOptions{},
 		}
diff --git a/controller/nucleus/memoryDeviceStore.go b/controller/nucleus/memoryDeviceStore.go
index 2bc4290582283ec2151c72f3437e0f6f90d9025e..e40bdd206e4ff31f36b06d7d491771229ed706f1 100644
--- a/controller/nucleus/memoryDeviceStore.go
+++ b/controller/nucleus/memoryDeviceStore.go
@@ -50,7 +50,7 @@ func (t *MemoryDeviceStore) Add(item device.Device) error {
 func (t *MemoryDeviceStore) Update(item device.Device) error {
 	_, ok := t.Store[item.ID().String()]
 	if !ok {
-		return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()}
+		return errors.CouldNotFindError{ID: item.ID(), Name: item.Name()}
 	}
 
 	var device device.LoadedDevice
@@ -85,12 +85,12 @@ func (t *MemoryDeviceStore) Get(query store.Query) (device.LoadedDevice, error)
 		// Second search for name
 		id, ok := t.nameLookupTable[query.Name]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		item, ok := t.Store[id]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return item, nil
diff --git a/controller/nucleus/memoryPndStore.go b/controller/nucleus/memoryPndStore.go
index 15cc6909e3b87a1de909ff3f71b378c0bb589c32..f30e759029cc24e2ced0110467d1ff279f946121 100644
--- a/controller/nucleus/memoryPndStore.go
+++ b/controller/nucleus/memoryPndStore.go
@@ -45,7 +45,7 @@ func (t *MemoryPndStore) Delete(item networkdomain.NetworkDomain) error {
 func (t *MemoryPndStore) Get(query store.Query) (networkdomain.NetworkDomain, error) {
 	item, ok := t.Store[query.ID]
 	if !ok {
-		return nil, &nerrors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+		return nil, &nerrors.CouldNotFindError{ID: query.ID, Name: query.Name}
 	}
 
 	return item, nil
@@ -67,7 +67,7 @@ func (t *MemoryPndStore) GetAll() ([]networkdomain.NetworkDomain, error) {
 func (t *MemoryPndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) {
 	ch, ok := t.pendingChannels[id]
 	if !ok {
-		return nil, &nerrors.ErrCouldNotFind{ID: id}
+		return nil, &nerrors.CouldNotFindError{ID: id}
 	}
 	return ch, nil
 }
diff --git a/controller/nucleus/memorySbiStore.go b/controller/nucleus/memorySbiStore.go
index 82a27673032322b2e2c86c13bfed2171164a2ed7..91ed028a3b38752a2003ceed9fb240427bd86881 100644
--- a/controller/nucleus/memorySbiStore.go
+++ b/controller/nucleus/memorySbiStore.go
@@ -85,12 +85,12 @@ func (t *MemorySbiStore) Get(query store.Query) (southbound.LoadedSbi, error) {
 		// Second search for name
 		id, ok := t.nameLookupTable[query.Name]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		item, ok := t.Store[id]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return item, nil
diff --git a/controller/nucleus/plugin.go b/controller/nucleus/plugin.go
index 82e65626f4c59f2e8ccde923317243d4068ef930..9b14f0849cd47270e1ba6689a1830365a5de42c4 100644
--- a/controller/nucleus/plugin.go
+++ b/controller/nucleus/plugin.go
@@ -89,7 +89,7 @@ func UpdatePlugin(p plugin.Plugin) (updated bool, err error) {
 		log.Info("Plugin update executed.")
 		return true, nil
 	}
-	return false, errors.ErrPluginVersion{
+	return false, errors.PluginVersionError{
 		PlugID:      p.ID().String(),
 		ProvidedVer: tmpManifest.Version,
 		UsedVer:     p.Manifest().Version,
diff --git a/controller/nucleus/pndFilesystemStore.go b/controller/nucleus/pndFilesystemStore.go
index c179d5330637b0ecb7e24f123da6ba0121d9bf27..b6812dad23f5686b38562b2b0655e3d33b55c1a1 100644
--- a/controller/nucleus/pndFilesystemStore.go
+++ b/controller/nucleus/pndFilesystemStore.go
@@ -134,7 +134,7 @@ func (t *FilesystemPndStore) Delete(pndToDelete networkdomain.NetworkDomain) err
 		}
 	}
 
-	return &errors.ErrCouldNotDelete{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err}
+	return &errors.CouldNotDeleteError{Identifier: pndToDelete.ID(), Type: pndToDelete, Err: err}
 }
 
 // Get provides a the query interface to find a stored pnd.
@@ -153,7 +153,7 @@ func (t *FilesystemPndStore) Get(query store.Query) (networkdomain.NetworkDomain
 		}
 	}
 
-	return nil, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+	return nil, &errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 }
 
 // GetAll returns all pnds currently on the store.
@@ -171,7 +171,7 @@ func (t *FilesystemPndStore) GetAll() ([]networkdomain.NetworkDomain, error) {
 func (t *FilesystemPndStore) PendingChannels(id uuid.UUID, parseErrors ...error) (chan device.Details, error) {
 	ch, ok := t.pendingChannels[id]
 	if !ok {
-		return nil, &errors.ErrCouldNotFind{ID: id}
+		return nil, &errors.CouldNotFindError{ID: id}
 	}
 	return ch, nil
 }
diff --git a/controller/nucleus/principalNetworkDomain.go b/controller/nucleus/principalNetworkDomain.go
index ea13d0988d345d8a4d0b5dcc82d17bb6fda6f470..c80ae55f8276960387da13a12cde4e0f070a52c3 100644
--- a/controller/nucleus/principalNetworkDomain.go
+++ b/controller/nucleus/principalNetworkDomain.go
@@ -416,7 +416,7 @@ func (pnd *pndImplementation) Request(uuid uuid.UUID, path string) (proto.Messag
 	}
 	resp, ok := res.(proto.Message)
 	if !ok {
-		return nil, &errors.ErrInvalidTypeAssertion{
+		return nil, &errors.InvalidTypeAssertionError{
 			Value: res,
 			Type:  (*proto.Message)(nil),
 		}
@@ -518,7 +518,7 @@ func (pnd *pndImplementation) ChangeOND(duid uuid.UUID, operation ppb.ApiOperati
 	}
 
 	if operation != ppb.ApiOperation_API_OPERATION_DELETE && len(value) != 1 {
-		return uuid.Nil, &errors.ErrInvalidParameters{
+		return uuid.Nil, &errors.InvalidParametersError{
 			Func:  pnd.ChangeOND,
 			Param: value,
 		}
@@ -550,7 +550,7 @@ func (pnd *pndImplementation) ChangeOND(duid uuid.UUID, operation ppb.ApiOperati
 			return uuid.Nil, err
 		}
 	default:
-		return uuid.Nil, &errors.ErrOperationNotSupported{Op: operation}
+		return uuid.Nil, &errors.OperationNotSupportedError{Op: operation}
 	}
 
 	ygot.PruneEmptyBranches(validatedCpy)
@@ -874,7 +874,7 @@ func saveStreamToFile[T StreamClient](sc T, filename string, id uuid.UUID) (err
 	// clean path to prevent attackers to get access to to directories elsewhere on the system
 	path = filepath.Clean(path)
 	if !strings.HasPrefix(path, folderName) {
-		return &errors.ErrInvalidParameters{
+		return &errors.InvalidParametersError{
 			Func:  saveStreamToFile[T],
 			Param: path,
 		}
diff --git a/controller/nucleus/restconf_transport.go b/controller/nucleus/restconf_transport.go
index c00c852d68ba44c6bfe0735b2ac70bfd70c9cabf..7e9b6fb0270411217c2480943dfbb1f5a8848137 100644
--- a/controller/nucleus/restconf_transport.go
+++ b/controller/nucleus/restconf_transport.go
@@ -14,17 +14,17 @@ type Restconf struct{}
 
 // Get not yet implemented.
 func (r Restconf) Get(ctx context.Context, params ...string) (interface{}, error) {
-	return nil, &errors.ErrNotYetImplemented{}
+	return nil, &errors.NotYetImplementedError{}
 }
 
 // Set not yet implemented.
 func (r Restconf) Set(ctx context.Context, params ...interface{}) error {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
 
 // Subscribe not yet implemented.
 func (r Restconf) Subscribe(ctx context.Context, params ...string) error {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
 
 // Type not yet implemented.
@@ -34,10 +34,10 @@ func (r Restconf) Type() string {
 
 // GetOptions not yet implemented.
 func (r Restconf) GetOptions() interface{} {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
 
 // ProcessResponse not yet implemented.
 func (r Restconf) ProcessResponse(resp interface{}, root interface{}, models *ytypes.Schema) error {
-	return &errors.ErrNotYetImplemented{}
+	return &errors.NotYetImplementedError{}
 }
diff --git a/controller/nucleus/sbiFilesystemStore.go b/controller/nucleus/sbiFilesystemStore.go
index 7ead5bf270594cd5105ac6bebf5ecaea8e2d8d0c..5e88a40010bc076770582504aa2d32d9081d8446 100644
--- a/controller/nucleus/sbiFilesystemStore.go
+++ b/controller/nucleus/sbiFilesystemStore.go
@@ -113,7 +113,7 @@ func (s *FilesystemSbiStore) Delete(sbiToDelete southbound.SouthboundInterface)
 			return nil
 		}
 	}
-	return &errors.ErrCouldNotDelete{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err}
+	return &errors.CouldNotDeleteError{Identifier: sbiToDelete.ID(), Type: sbiToDelete, Err: err}
 }
 
 // Get takes a SouthboundInterface's UUID or name and returns the SouthboundInterface. If the requested
@@ -135,7 +135,7 @@ func (s *FilesystemSbiStore) Get(query store.Query) (southbound.LoadedSbi, error
 		}
 	}
 
-	return sbi, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+	return sbi, &errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 }
 
 // GetAll returns all SBIs.
diff --git a/controller/nucleus/southbound.go b/controller/nucleus/southbound.go
index 4e3f4c1bdd211d84efe5ab6d616ca4535d644e70..522f14a9ca008164351ba7a0b07b7a3f3423ff31 100644
--- a/controller/nucleus/southbound.go
+++ b/controller/nucleus/southbound.go
@@ -43,7 +43,7 @@ func NewSBI(southbound spb.Type, sbUUID ...uuid.UUID) (southbound.SouthboundInte
 		}
 		return sbip, nil
 	default:
-		return nil, errors.ErrUnsupportedSbiType{Type: southbound}
+		return nil, errors.UnsupportedSbiTypeError{Type: southbound}
 	}
 }
 
@@ -137,7 +137,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo
 	}
 	validatedDeepCopy, ok := root.(ygot.ValidatedGoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: root,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
@@ -151,7 +151,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo
 	}
 	validatedCreatedNode, ok := createdNode.(ygot.ValidatedGoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: createdNode,
 			Type:  (*ygot.ValidatedGoStruct)(nil),
 		}
@@ -261,7 +261,7 @@ func (p *SouthboundPlugin) load(id uuid.UUID) error {
 	sbi, ok := symbol.(southbound.SouthboundInterface)
 	if !ok {
 		p.state = plugin.FAULTY
-		return &errors.ErrInvalidTypeAssertion{
+		return &errors.InvalidTypeAssertionError{
 			Value: symbol,
 			Type:  (*southbound.SouthboundInterface)(nil),
 		}
diff --git a/controller/nucleus/transport.go b/controller/nucleus/transport.go
index a2db1ff28b60a17e3ee64f4c311f10bbfe071364..190cf479ab3531bd47d322d01c96c13f31727697 100644
--- a/controller/nucleus/transport.go
+++ b/controller/nucleus/transport.go
@@ -11,24 +11,24 @@ import (
 // implementation.
 func NewTransport(opts *tpb.TransportOption, sbi southbound.SouthboundInterface) (transport.Transport, error) {
 	if opts == nil {
-		return nil, &errors.ErrInvalidParameters{
+		return nil, &errors.InvalidParametersError{
 			Func:  NewTransport,
 			Param: "'opt' cannot be 'nil'",
 		}
 	}
 	if sbi == nil {
-		return nil, errors.ErrInvalidParameters{
+		return nil, errors.InvalidParametersError{
 			Param: "'sbi' cannot be 'nil'",
 		}
 	}
 	if !validTransportOptions(opts) {
-		return nil, &errors.ErrInvalidTransportOptions{Opt: opts}
+		return nil, &errors.InvalidTransportOptionsError{Opt: opts}
 	}
 	switch o := opts.TransportOption.(type) {
 	case *tpb.TransportOption_GnmiTransportOption:
 		return newGnmiTransport(opts, sbi)
 	default:
-		return nil, &errors.ErrInvalidTransportOptions{Opt: o}
+		return nil, &errors.InvalidTransportOptionsError{Opt: o}
 	}
 }
 
diff --git a/controller/rbac/databaseRoleStore.go b/controller/rbac/databaseRoleStore.go
index 871edf47e2401487e8c636fef35af586f085e155..7df2ff5cf8f0574c22d5a1492365454f3cf2edd4 100644
--- a/controller/rbac/databaseRoleStore.go
+++ b/controller/rbac/databaseRoleStore.go
@@ -39,7 +39,7 @@ func (s *DatabaseRoleStore) Add(roleToAdd rbac.Role) (err error) {
 			return nil
 		}
 
-		return errors.ErrCouldNotCreate{Identifier: roleToAdd.ID(), Type: roleToAdd, Err: err}
+		return errors.CouldNotCreateError{Identifier: roleToAdd.ID(), Type: roleToAdd, Err: err}
 	}
 
 	return nil
@@ -60,7 +60,7 @@ func (s *DatabaseRoleStore) Delete(roleToDelete rbac.Role) (err error) {
 		Collection(s.roleStoreName).
 		DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: roleToDelete.ID().String()}})
 	if err != nil {
-		return errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err}
+		return errors.CouldNotDeleteError{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err}
 	}
 
 	return nil
@@ -102,13 +102,13 @@ func (s *DatabaseRoleStore) getByID(idOfRole uuid.UUID) (loadedRole rbac.LoadedR
 	collection := db.Collection(s.roleStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfRole.String()}})
 	if result == nil {
-		return loadedRole, errors.ErrCouldNotFind{ID: idOfRole}
+		return loadedRole, errors.CouldNotFindError{ID: idOfRole}
 	}
 
 	err = result.Decode(&loadedRole)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedRole, errors.ErrCouldNotMarshall{Identifier: idOfRole, Type: loadedRole, Err: err}
+		return loadedRole, errors.CouldNotMarshallError{Identifier: idOfRole, Type: loadedRole, Err: err}
 	}
 
 	return loadedRole, nil
@@ -128,13 +128,13 @@ func (s *DatabaseRoleStore) getByName(nameOfRole string) (loadedRole rbac.Loaded
 	collection := db.Collection(s.roleStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "rolename", Value: nameOfRole}})
 	if result == nil {
-		return loadedRole, errors.ErrCouldNotFind{Name: nameOfRole}
+		return loadedRole, errors.CouldNotFindError{Name: nameOfRole}
 	}
 
 	err = result.Decode(&loadedRole)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedRole, errors.ErrCouldNotMarshall{Identifier: nameOfRole, Type: loadedRole, Err: err}
+		return loadedRole, errors.CouldNotMarshallError{Identifier: nameOfRole, Type: loadedRole, Err: err}
 	}
 
 	return loadedRole, nil
@@ -169,7 +169,7 @@ func (s *DatabaseRoleStore) GetAll() (loadedRoles []rbac.LoadedRole, err error)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Type: loadedRoles, Err: err}
+		return nil, errors.CouldNotMarshallError{Type: loadedRoles, Err: err}
 	}
 	return loadedRoles, nil
 }
@@ -203,7 +203,7 @@ func (s *DatabaseRoleStore) Update(roleToUpdate rbac.Role) (err error) {
 	if err != nil {
 		log.Printf("Could not update Role: %v", err)
 
-		return errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err}
+		return errors.CouldNotUpdateError{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err}
 	}
 
 	return nil
diff --git a/controller/rbac/databaseUserStore.go b/controller/rbac/databaseUserStore.go
index b1f6eeee754ddf193e67a0939c9fe818a57678d8..62b9409a8f94568fb81625636a98fe2197975956 100644
--- a/controller/rbac/databaseUserStore.go
+++ b/controller/rbac/databaseUserStore.go
@@ -39,7 +39,7 @@ func (s *DatabaseUserStore) Add(userToAdd rbac.User) (err error) {
 			return nil
 		}
 
-		return errors.ErrCouldNotCreate{Identifier: userToAdd.ID(), Type: userToAdd, Err: err}
+		return errors.CouldNotCreateError{Identifier: userToAdd.ID(), Type: userToAdd, Err: err}
 	}
 
 	return nil
@@ -60,7 +60,7 @@ func (s *DatabaseUserStore) Delete(userToDelete rbac.User) (err error) {
 		Collection(s.userStoreName).
 		DeleteOne(ctx, bson.D{primitive.E{Key: "_id", Value: userToDelete.ID().String()}})
 	if err != nil {
-		return errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err}
+		return errors.CouldNotDeleteError{Identifier: userToDelete.ID(), Type: userToDelete, Err: err}
 	}
 
 	return nil
@@ -102,13 +102,13 @@ func (s *DatabaseUserStore) getByID(idOfUser uuid.UUID) (loadedUser rbac.LoadedU
 	collection := db.Collection(s.userStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfUser.String()}})
 	if result == nil {
-		return loadedUser, errors.ErrCouldNotFind{ID: idOfUser}
+		return loadedUser, errors.CouldNotFindError{ID: idOfUser}
 	}
 
 	err = result.Decode(&loadedUser)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedUser, errors.ErrCouldNotMarshall{Identifier: idOfUser, Type: loadedUser, Err: err}
+		return loadedUser, errors.CouldNotMarshallError{Identifier: idOfUser, Type: loadedUser, Err: err}
 	}
 
 	return loadedUser, nil
@@ -128,13 +128,13 @@ func (s *DatabaseUserStore) getByName(nameOfUser string) (loadedUser rbac.Loaded
 	collection := db.Collection(s.userStoreName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "username", Value: nameOfUser}})
 	if result == nil {
-		return loadedUser, errors.ErrCouldNotFind{Name: nameOfUser}
+		return loadedUser, errors.CouldNotFindError{Name: nameOfUser}
 	}
 
 	err = result.Decode(&loadedUser)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
-		return loadedUser, errors.ErrCouldNotMarshall{Identifier: nameOfUser, Type: loadedUser, Err: err}
+		return loadedUser, errors.CouldNotMarshallError{Identifier: nameOfUser, Type: loadedUser, Err: err}
 	}
 
 	return loadedUser, nil
@@ -169,7 +169,7 @@ func (s *DatabaseUserStore) GetAll() (loadedUsers []rbac.LoadedUser, err error)
 	if err != nil {
 		log.Printf("Failed marshalling %v", err)
 
-		return nil, errors.ErrCouldNotMarshall{Type: loadedUsers, Err: err}
+		return nil, errors.CouldNotMarshallError{Type: loadedUsers, Err: err}
 	}
 	return loadedUsers, nil
 }
@@ -204,7 +204,7 @@ func (s *DatabaseUserStore) Update(userToUpdate rbac.User) (err error) {
 	if err != nil {
 		log.Printf("Could not update User: %v", err)
 
-		return errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err}
+		return errors.CouldNotUpdateError{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err}
 	}
 
 	return nil
diff --git a/controller/rbac/memoryRoleStore.go b/controller/rbac/memoryRoleStore.go
index 103f1c1a229992225027c2264b07761f06fadb66..0f8e14ac3952cc722fb6e3d41e672548aa080e03 100644
--- a/controller/rbac/memoryRoleStore.go
+++ b/controller/rbac/memoryRoleStore.go
@@ -56,7 +56,7 @@ func (s *MemoryRoleStore) Delete(item rbac.Role) error {
 func (s *MemoryRoleStore) Update(item rbac.Role) error {
 	_, ok := s.Store[item.ID().String()]
 	if !ok {
-		return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()}
+		return errors.CouldNotFindError{ID: item.ID(), Name: item.Name()}
 	}
 
 	var role rbac.LoadedRole
@@ -84,12 +84,12 @@ func (s *MemoryRoleStore) Get(query store.Query) (rbac.LoadedRole, error) {
 		// Second search for name
 		id, ok := s.nameLookupTable[query.Name]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		item, ok := s.Store[id]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return item, nil
diff --git a/controller/rbac/memoryUserStore.go b/controller/rbac/memoryUserStore.go
index 0387d2994eedacc4452140dd0cc1718d91c27dd1..70668e5910ea6ad83855d49504cfc00027309dfb 100644
--- a/controller/rbac/memoryUserStore.go
+++ b/controller/rbac/memoryUserStore.go
@@ -56,7 +56,7 @@ func (s *MemoryUserStore) Delete(item rbac.User) error {
 func (s *MemoryUserStore) Update(item rbac.User) error {
 	_, ok := s.Store[item.ID().String()]
 	if !ok {
-		return errors.ErrCouldNotFind{ID: item.ID(), Name: item.Name()}
+		return errors.CouldNotFindError{ID: item.ID(), Name: item.Name()}
 	}
 
 	var user rbac.LoadedUser
@@ -84,12 +84,12 @@ func (s *MemoryUserStore) Get(query store.Query) (rbac.LoadedUser, error) {
 		// Second search for name
 		id, ok := s.nameLookupTable[query.Name]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		item, ok := s.Store[id]
 		if !ok {
-			return item, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return item, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return item, nil
diff --git a/controller/rbac/roleFileSystemStore.go b/controller/rbac/roleFileSystemStore.go
index b6785cd66b8a5e499ca2b792bbc8a2db9079916d..ca629f12f22cb2eb96a86648ddc28c867dc0d964 100644
--- a/controller/rbac/roleFileSystemStore.go
+++ b/controller/rbac/roleFileSystemStore.go
@@ -109,7 +109,7 @@ func (s *FileSystemRoleStore) Delete(roleToDelete rbac.Role) error {
 		}
 	}
 
-	return &errors.ErrCouldNotDelete{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err}
+	return &errors.CouldNotDeleteError{Identifier: roleToDelete.ID(), Type: roleToDelete, Err: err}
 }
 
 //Get takes a Roles ID and return the Role if found.
@@ -129,7 +129,7 @@ func (s *FileSystemRoleStore) Get(query store.Query) (rbac.LoadedRole, error) {
 		}
 	}
 
-	return role, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+	return role, &errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 }
 
 // GetAll returns all the Roles.
@@ -166,5 +166,5 @@ func (s *FileSystemRoleStore) Update(roleToUpdate rbac.Role) error {
 		}
 	}
 
-	return &errors.ErrCouldNotUpdate{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err}
+	return &errors.CouldNotUpdateError{Identifier: roleToUpdate.ID(), Type: roleToUpdate, Err: err}
 }
diff --git a/controller/rbac/userFileSystemStore.go b/controller/rbac/userFileSystemStore.go
index 4c181842f6821e4e9e3ea843365a47815e1e8006..2839bffcd2ea86e11f3bddeb1d67142ea6f45660 100644
--- a/controller/rbac/userFileSystemStore.go
+++ b/controller/rbac/userFileSystemStore.go
@@ -109,7 +109,7 @@ func (s *FileSystemUserStore) Delete(userToDelete rbac.User) error {
 		}
 	}
 
-	return &errors.ErrCouldNotDelete{Identifier: userToDelete.ID(), Type: userToDelete, Err: err}
+	return &errors.CouldNotDeleteError{Identifier: userToDelete.ID(), Type: userToDelete, Err: err}
 }
 
 //Get takes a Users ID and return the User if found.
@@ -129,7 +129,7 @@ func (s *FileSystemUserStore) Get(query store.Query) (rbac.LoadedUser, error) {
 			return user, nil
 		}
 	}
-	return user, &errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+	return user, &errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 }
 
 // GetAll returns all the Users.
@@ -166,5 +166,5 @@ func (s *FileSystemUserStore) Update(userToUpdate rbac.User) error {
 		}
 	}
 
-	return &errors.ErrCouldNotUpdate{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err}
+	return &errors.CouldNotUpdateError{Identifier: userToUpdate.ID(), Type: userToUpdate, Err: err}
 }
diff --git a/controller/store/changeStores.go b/controller/store/changeStores.go
index 3b38a6e001771fd50a193191c20c590a32a1c812..8727f4a6296340d81cd0f2bf1751c5cb44240ab5 100644
--- a/controller/store/changeStores.go
+++ b/controller/store/changeStores.go
@@ -28,7 +28,7 @@ func (s *ChangeStore) GetChange(id uuid.UUID) (change.Change, error) {
 	}
 	c, ok := item.(change.Change)
 	if !ok {
-		return nil, &errors.ErrInvalidTypeAssertion{
+		return nil, &errors.InvalidTypeAssertionError{
 			Value: c,
 			Type:  (*change.Change)(nil),
 		}
diff --git a/controller/store/oldGenericStore.go b/controller/store/oldGenericStore.go
index a08d8c628efd5b5406847e29cb2cd60efff7870d..3beec84a43deef7d2f83cff93011c5f458399c89 100644
--- a/controller/store/oldGenericStore.go
+++ b/controller/store/oldGenericStore.go
@@ -32,7 +32,7 @@ func (s *genericStore) Exists(id uuid.UUID) bool {
 // Add adds a Storable to the Store.
 func (s *genericStore) Add(item store.Storable) error {
 	if s.Exists(item.ID()) {
-		return &errors.ErrAlreadyExists{Item: item}
+		return &errors.AlreadyExistsError{Item: item}
 	}
 	s.storeLock.Lock()
 	s.Store[item.ID()] = item
@@ -50,7 +50,7 @@ func (s *genericStore) Add(item store.Storable) error {
 // use GetDevice, GetPND, GetSBI, or GetChange respectively.
 func (s *genericStore) Get(id uuid.UUID) (store.Storable, error) {
 	if !s.Exists(id) {
-		return nil, &errors.ErrCouldNotFind{ID: id}
+		return nil, &errors.CouldNotFindError{ID: id}
 	}
 	log.WithFields(log.Fields{
 		"uuid": id,
@@ -64,7 +64,7 @@ func (s *genericStore) Get(id uuid.UUID) (store.Storable, error) {
 // exist in the Store an error is returned.
 func (s *genericStore) Delete(id uuid.UUID) error {
 	if !s.Exists(id) {
-		return &errors.ErrCouldNotFind{ID: id}
+		return &errors.CouldNotFindError{ID: id}
 	}
 	s.storeLock.Lock()
 	delete(s.Store, id)
diff --git a/controller/store/utils.go b/controller/store/utils.go
index b6866b6cb994ce377aa9f6da3f3746051b812628..69b67fe297899ff6efad9fdf1abe7eeae1829000 100644
--- a/controller/store/utils.go
+++ b/controller/store/utils.go
@@ -21,7 +21,7 @@ func FromString(id string) (uuid.UUID, error) {
 		log.WithFields(log.Fields{
 			"identifier": id,
 		}).Debug(err)
-		return uuid.Nil, &errors.ErrInvalidUUID{DeviceName: id}
+		return uuid.Nil, &errors.InvalidUUIDError{DeviceName: id}
 	}
 
 	return idAsUUID, nil
diff --git a/controller/test/integration/nucleusIntegration_test.go b/controller/test/integration/nucleusIntegration_test.go
index 36b977a62b8a8db6ea6875f958ee4ce7ae8b7b2f..e2644bb14a541829bf54719a6e8f9e7d3ed1b57b 100644
--- a/controller/test/integration/nucleusIntegration_test.go
+++ b/controller/test/integration/nucleusIntegration_test.go
@@ -249,7 +249,7 @@ func TestGnmi_SetValidIntegration(t *testing.T) {
 				}
 				r, ok := resp.(*gpb.GetResponse)
 				if !ok {
-					t.Error(&errors.ErrInvalidTypeAssertion{
+					t.Error(&errors.InvalidTypeAssertionError{
 						Value: resp,
 						Type:  &gpb.GetResponse{},
 					})
@@ -524,7 +524,7 @@ func TestGnmi_CapabilitiesIntegration(t *testing.T) {
 			}
 			g, ok := tr.(*nucleus.Gnmi)
 			if !ok {
-				t.Error(&errors.ErrInvalidTypeAssertion{
+				t.Error(&errors.InvalidTypeAssertionError{
 					Value: tr,
 					Type:  &nucleus.Gnmi{},
 				})
diff --git a/controller/test/plugin/csbiAdditions.go b/controller/test/plugin/csbiAdditions.go
index 68d99fba78eae05283ba1901c79cb89ef4610422..45fbec09e0f49284e05b24e5302f7d0d410d0df1 100644
--- a/controller/test/plugin/csbiAdditions.go
+++ b/controller/test/plugin/csbiAdditions.go
@@ -45,7 +45,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo
 	}
 	validatedDeepCopy, ok := root.(ygot.GoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{}
+		return &errors.InvalidTypeAssertionError{}
 	}
 
 	// returns the node we want to fill with the data contained in 'bytes',
@@ -56,7 +56,7 @@ func unmarshal(schema *ytypes.Schema, bytes []byte, path *gpb.Path, goStruct ygo
 	}
 	validatedCreatedNode, ok := createdNode.(ygot.GoStruct)
 	if !ok {
-		return &errors.ErrInvalidTypeAssertion{}
+		return &errors.InvalidTypeAssertionError{}
 	}
 
 	if err := Unmarshal(bytes, validatedCreatedNode, opt...); err != nil {
diff --git a/controller/topology/nodes/nodeStore.go b/controller/topology/nodes/nodeStore.go
index 3f69c80d0671c8548a3ca1656ca57867cec9b231..cbf75d9f230d3b748299050bd7e93a63888f515c 100644
--- a/controller/topology/nodes/nodeStore.go
+++ b/controller/topology/nodes/nodeStore.go
@@ -41,7 +41,7 @@ func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) {
 	if query.ID.String() != "" {
 		loadedNode, err := s.getByID(query.ID)
 		if err != nil {
-			return loadedNode, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return loadedNode, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return loadedNode, nil
@@ -49,7 +49,7 @@ func (s *DatabaseNodeStore) Get(query query.Query) (Node, error) {
 
 	loadedNode, err := s.getByName(query.Name)
 	if err != nil {
-		return loadedNode, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+		return loadedNode, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 	}
 
 	return loadedNode, nil
@@ -71,12 +71,12 @@ func (s *DatabaseNodeStore) getByID(idOfNode uuid.UUID) (loadedNode Node, err er
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idAsByteArray}})
 	if result == nil {
-		return loadedNode, errors.ErrCouldNotFind{ID: idOfNode}
+		return loadedNode, errors.CouldNotFindError{ID: idOfNode}
 	}
 
 	err = result.Decode(&loadedNode)
 	if err != nil {
-		return loadedNode, errors.ErrCouldNotMarshall{Identifier: idOfNode, Type: loadedNode, Err: err}
+		return loadedNode, errors.CouldNotMarshallError{Identifier: idOfNode, Type: loadedNode, Err: err}
 	}
 
 	return loadedNode, nil
@@ -96,12 +96,12 @@ func (s *DatabaseNodeStore) getByName(nameOfNode string) (loadedNode Node, err e
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfNode}})
 	if result == nil {
-		return loadedNode, errors.ErrCouldNotFind{Name: nameOfNode}
+		return loadedNode, errors.CouldNotFindError{Name: nameOfNode}
 	}
 
 	err = result.Decode(&loadedNode)
 	if err != nil {
-		return loadedNode, errors.ErrCouldNotMarshall{Identifier: nameOfNode, Type: loadedNode, Err: err}
+		return loadedNode, errors.CouldNotMarshallError{Identifier: nameOfNode, Type: loadedNode, Err: err}
 	}
 
 	return loadedNode, nil
@@ -133,7 +133,7 @@ func (s *DatabaseNodeStore) GetAll() (loadedNode []Node, err error) {
 
 	err = cursor.All(ctx, &loadedNode)
 	if err != nil {
-		return loadedNode, errors.ErrCouldNotMarshall{Type: loadedNode, Err: err}
+		return loadedNode, errors.CouldNotMarshallError{Type: loadedNode, Err: err}
 	}
 
 	return loadedNode, nil
@@ -154,7 +154,7 @@ func (s *DatabaseNodeStore) Add(node Node) (err error) {
 		Collection(s.storeName).
 		InsertOne(ctx, node)
 	if err != nil {
-		return errors.ErrCouldNotCreate{Identifier: node.ID, Type: node, Err: err}
+		return errors.CouldNotCreateError{Identifier: node.ID, Type: node, Err: err}
 	}
 
 	return nil
@@ -188,7 +188,7 @@ func (s *DatabaseNodeStore) Update(node Node) (err error) {
 			ctx, bson.M{"_id": node.ID.String()}, update, &opt).
 		Decode(&updatedLoadedNodes)
 	if err != nil {
-		return errors.ErrCouldNotUpdate{Identifier: node.ID, Type: node, Err: err}
+		return errors.CouldNotUpdateError{Identifier: node.ID, Type: node, Err: err}
 	}
 
 	return nil
diff --git a/controller/topology/ports/portStore.go b/controller/topology/ports/portStore.go
index 0c44a0b3bfd45b1c76725752205f3d0d1a7eda6d..138e1d9ab24a2c238d703d160c57dc3e91501c73 100644
--- a/controller/topology/ports/portStore.go
+++ b/controller/topology/ports/portStore.go
@@ -42,7 +42,7 @@ func (s *DatabasePortStore) Get(query query.Query) (Port, error) {
 	if query.ID.String() != "" {
 		loadedPort, err := s.getByID(query.ID)
 		if err != nil {
-			return loadedPort, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return loadedPort, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return loadedPort, nil
@@ -50,7 +50,7 @@ func (s *DatabasePortStore) Get(query query.Query) (Port, error) {
 
 	loadedPort, err := s.getByName(query.Name)
 	if err != nil {
-		return loadedPort, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+		return loadedPort, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 	}
 
 	return loadedPort, nil
@@ -72,12 +72,12 @@ func (s *DatabasePortStore) getByID(idOfPort uuid.UUID) (loadedPort Port, err er
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idAsByteArray}})
 	if result == nil {
-		return loadedPort, errors.ErrCouldNotFind{ID: idOfPort}
+		return loadedPort, errors.CouldNotFindError{ID: idOfPort}
 	}
 
 	err = result.Decode(&loadedPort)
 	if err != nil {
-		return loadedPort, errors.ErrCouldNotMarshall{Identifier: idOfPort, Type: loadedPort, Err: err}
+		return loadedPort, errors.CouldNotMarshallError{Identifier: idOfPort, Type: loadedPort, Err: err}
 	}
 
 	return loadedPort, nil
@@ -97,12 +97,12 @@ func (s *DatabasePortStore) getByName(nameOfPort string) (loadedPort Port, err e
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfPort}})
 	if result == nil {
-		return loadedPort, errors.ErrCouldNotFind{Name: nameOfPort}
+		return loadedPort, errors.CouldNotFindError{Name: nameOfPort}
 	}
 
 	err = result.Decode(&loadedPort)
 	if err != nil {
-		return loadedPort, errors.ErrCouldNotMarshall{Identifier: nameOfPort, Type: loadedPort, Err: err}
+		return loadedPort, errors.CouldNotMarshallError{Identifier: nameOfPort, Type: loadedPort, Err: err}
 	}
 
 	return loadedPort, nil
@@ -135,7 +135,7 @@ func (s *DatabasePortStore) GetAll() (loadedPorts []Port, err error) {
 
 	err = cursor.All(ctx, &loadedPorts)
 	if err != nil {
-		return loadedPorts, errors.ErrCouldNotMarshall{Type: loadedPorts, Err: err}
+		return loadedPorts, errors.CouldNotMarshallError{Type: loadedPorts, Err: err}
 	}
 
 	return loadedPorts, nil
@@ -156,7 +156,7 @@ func (s *DatabasePortStore) Add(port Port) (err error) {
 		Collection(s.storeName).
 		InsertOne(ctx, port)
 	if err != nil {
-		return errors.ErrCouldNotCreate{Identifier: port.ID, Type: port, Err: err}
+		return errors.CouldNotCreateError{Identifier: port.ID, Type: port, Err: err}
 	}
 
 	return nil
@@ -190,7 +190,7 @@ func (s *DatabasePortStore) Update(port Port) (err error) {
 			ctx, bson.M{"_id": port.ID.String()}, update, &opt).
 		Decode(&updatedLoadedDevice)
 	if err != nil {
-		return errors.ErrCouldNotUpdate{Identifier: port.ID, Type: port, Err: err}
+		return errors.CouldNotUpdateError{Identifier: port.ID, Type: port, Err: err}
 	}
 
 	return nil
diff --git a/controller/topology/routing-tables/routingTableStore.go b/controller/topology/routing-tables/routingTableStore.go
index 0bdd82c7772784973e5664a9a3a7cd5a7e8255d1..6041cf251226282cede80b36b1ab4e2216be2964 100644
--- a/controller/topology/routing-tables/routingTableStore.go
+++ b/controller/topology/routing-tables/routingTableStore.go
@@ -41,7 +41,7 @@ func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error)
 	if query.ID.String() != "" {
 		loadedRoutingTable, err := s.getByID(query.ID)
 		if err != nil {
-			return loadedRoutingTable, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return loadedRoutingTable, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return loadedRoutingTable, nil
@@ -49,7 +49,7 @@ func (s *DatabaseRoutingTableStore) Get(query query.Query) (RoutingTable, error)
 
 	loadedRoutingTable, err := s.getByName(query.Name)
 	if err != nil {
-		return loadedRoutingTable, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+		return loadedRoutingTable, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 	}
 
 	return loadedRoutingTable, nil
@@ -69,12 +69,12 @@ func (s *DatabaseRoutingTableStore) getByID(idOfRoutingTable uuid.UUID) (routing
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfRoutingTable.String()}})
 	if result == nil {
-		return routingTable, errors.ErrCouldNotFind{ID: idOfRoutingTable}
+		return routingTable, errors.CouldNotFindError{ID: idOfRoutingTable}
 	}
 
 	err = result.Decode(&routingTable)
 	if err != nil {
-		return routingTable, errors.ErrCouldNotMarshall{Identifier: idOfRoutingTable, Type: routingTable, Err: err}
+		return routingTable, errors.CouldNotMarshallError{Identifier: idOfRoutingTable, Type: routingTable, Err: err}
 	}
 
 	return routingTable, nil
@@ -94,12 +94,12 @@ func (s *DatabaseRoutingTableStore) getByName(nameOfRoutingTable string) (loaded
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfRoutingTable}})
 	if result == nil {
-		return loadedRoutingTable, errors.ErrCouldNotFind{Name: nameOfRoutingTable}
+		return loadedRoutingTable, errors.CouldNotFindError{Name: nameOfRoutingTable}
 	}
 
 	err = result.Decode(&loadedRoutingTable)
 	if err != nil {
-		return loadedRoutingTable, errors.ErrCouldNotMarshall{Type: loadedRoutingTable, Err: err}
+		return loadedRoutingTable, errors.CouldNotMarshallError{Type: loadedRoutingTable, Err: err}
 	}
 
 	return loadedRoutingTable, nil
@@ -132,7 +132,7 @@ func (s *DatabaseRoutingTableStore) GetAll() (loadedRoutingTable []RoutingTable,
 
 	err = cursor.All(ctx, &loadedRoutingTable)
 	if err != nil {
-		return loadedRoutingTable, errors.ErrCouldNotMarshall{Type: loadedRoutingTable, Err: err}
+		return loadedRoutingTable, errors.CouldNotMarshallError{Type: loadedRoutingTable, Err: err}
 	}
 
 	return loadedRoutingTable, nil
@@ -153,7 +153,7 @@ func (s *DatabaseRoutingTableStore) Add(routingTable RoutingTable) (err error) {
 		Collection(s.storeName).
 		InsertOne(ctx, routingTable)
 	if err != nil {
-		return errors.ErrCouldNotCreate{Identifier: routingTable.ID, Type: routingTable, Err: err}
+		return errors.CouldNotCreateError{Identifier: routingTable.ID, Type: routingTable, Err: err}
 	}
 
 	return nil
@@ -187,7 +187,7 @@ func (s *DatabaseRoutingTableStore) Update(routingTable RoutingTable) (err error
 			ctx, bson.M{"_id": routingTable.ID.String()}, update, &opt).
 		Decode(&updatedLoadedRoutingTable)
 	if err != nil {
-		return errors.ErrCouldNotUpdate{Identifier: routingTable.ID, Type: routingTable, Err: err}
+		return errors.CouldNotUpdateError{Identifier: routingTable.ID, Type: routingTable, Err: err}
 	}
 
 	return nil
diff --git a/controller/topology/topologyStore.go b/controller/topology/topologyStore.go
index dc12b10af93c0bc226592f0498e54078c55fb7f8..e596c39e6d1f8ffb0273e6201bd514ab5c53dae1 100644
--- a/controller/topology/topologyStore.go
+++ b/controller/topology/topologyStore.go
@@ -42,7 +42,7 @@ func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) {
 	if query.ID.String() != "" {
 		loadedTopology, err := s.getByID(query.ID)
 		if err != nil {
-			return loadedTopology, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+			return loadedTopology, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 		}
 
 		return loadedTopology, nil
@@ -50,7 +50,7 @@ func (s *DatabaseTopologyStore) Get(query query.Query) (links.Link, error) {
 
 	loadedTopology, err := s.getByName(query.Name)
 	if err != nil {
-		return loadedTopology, errors.ErrCouldNotFind{ID: query.ID, Name: query.Name}
+		return loadedTopology, errors.CouldNotFindError{ID: query.ID, Name: query.Name}
 	}
 
 	return loadedTopology, nil
@@ -70,12 +70,12 @@ func (s *DatabaseTopologyStore) getByID(idOfTopology uuid.UUID) (loadedTopology
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "_id", Value: idOfTopology.String()}})
 	if result == nil {
-		return loadedTopology, errors.ErrCouldNotFind{ID: idOfTopology}
+		return loadedTopology, errors.CouldNotFindError{ID: idOfTopology}
 	}
 
 	err = result.Decode(&loadedTopology)
 	if err != nil {
-		return loadedTopology, errors.ErrCouldNotMarshall{Identifier: idOfTopology, Type: loadedTopology, Err: err}
+		return loadedTopology, errors.CouldNotMarshallError{Identifier: idOfTopology, Type: loadedTopology, Err: err}
 	}
 
 	return loadedTopology, nil
@@ -95,12 +95,12 @@ func (s *DatabaseTopologyStore) getByName(nameOfTopology string) (loadedTopology
 	collection := db.Collection(s.storeName)
 	result := collection.FindOne(ctx, bson.D{primitive.E{Key: "name", Value: nameOfTopology}})
 	if result == nil {
-		return loadedTopology, errors.ErrCouldNotFind{Name: nameOfTopology}
+		return loadedTopology, errors.CouldNotFindError{Name: nameOfTopology}
 	}
 
 	err = result.Decode(&loadedTopology)
 	if err != nil {
-		return loadedTopology, errors.ErrCouldNotMarshall{Identifier: nameOfTopology, Type: loadedTopology, Err: err}
+		return loadedTopology, errors.CouldNotMarshallError{Identifier: nameOfTopology, Type: loadedTopology, Err: err}
 	}
 
 	return loadedTopology, nil
@@ -133,7 +133,7 @@ func (s *DatabaseTopologyStore) GetAll() (loadedTopology []links.Link, err error
 
 	err = cursor.All(ctx, &loadedTopology)
 	if err != nil {
-		return loadedTopology, errors.ErrCouldNotMarshall{Type: loadedTopology, Err: err}
+		return loadedTopology, errors.CouldNotMarshallError{Type: loadedTopology, Err: err}
 	}
 
 	return loadedTopology, nil
@@ -154,7 +154,7 @@ func (s *DatabaseTopologyStore) Add(link links.Link) (err error) {
 		Collection(s.storeName).
 		InsertOne(ctx, link)
 	if err != nil {
-		return errors.ErrCouldNotCreate{Identifier: link.ID, Type: link, Err: err}
+		return errors.CouldNotCreateError{Identifier: link.ID, Type: link, Err: err}
 	}
 
 	return nil
@@ -188,7 +188,7 @@ func (s *DatabaseTopologyStore) Update(linkToUpdate links.Link) (err error) {
 			ctx, bson.M{"_id": linkToUpdate.ID.String()}, update, &opt).
 		Decode(&updatedLink)
 	if err != nil {
-		return errors.ErrCouldNotUpdate{Identifier: linkToUpdate.ID, Type: linkToUpdate, Err: err}
+		return errors.CouldNotUpdateError{Identifier: linkToUpdate.ID, Type: linkToUpdate, Err: err}
 	}
 
 	return nil
diff --git a/csbi/deployment.go b/csbi/deployment.go
index 8cf1da9709e06aec3e2ede877cde7bfc2b09450a..148001d4b6d59cff64e87bcefff8a06f45c943e9 100644
--- a/csbi/deployment.go
+++ b/csbi/deployment.go
@@ -64,7 +64,7 @@ func (store DeploymentStore) Get(id uuid.UUID) (Deployment, error) {
 	log.Tracef("requested %v from store", id)
 	deployment := <-store.in
 	if deployment.ID != id {
-		return Deployment{}, &errors.ErrCouldNotFind{ID: id}
+		return Deployment{}, &errors.CouldNotFindError{ID: id}
 	}
 	log.Tracef("received %v from store", id)
 	log.Tracef("leaving Get func for %v", id)
@@ -80,7 +80,7 @@ func (store DeploymentStore) Delete(id uuid.UUID) error {
 	log.Tracef("requested %v from store", id)
 	deployment := <-store.in
 	if deployment.ID != id {
-		return &errors.ErrCouldNotFind{ID: id}
+		return &errors.CouldNotFindError{ID: id}
 	}
 	log.Tracef("received %v from store", id)
 	deployment.State = pb.State_STATE_DECOMMISSIONED
diff --git a/csbi/discover.go b/csbi/discover.go
index fb270c1119bff0f88e40b064e445c49dcdcc88e5..68671f85b7deb4b5efd11e3240ef1560de80994b 100644
--- a/csbi/discover.go
+++ b/csbi/discover.go
@@ -24,7 +24,7 @@ func Discover(ctx context.Context, opts *tpb.TransportOption) ([]*gnmi.ModelData
 	}
 	transport, ok := t.(*nucleus.Gnmi)
 	if !ok {
-		return nil, &errors.ErrInvalidTypeAssertion{}
+		return nil, &errors.InvalidTypeAssertionError{}
 	}
 	resp, err := transport.Capabilities(ctx)
 	if err != nil {
@@ -32,7 +32,7 @@ func Discover(ctx context.Context, opts *tpb.TransportOption) ([]*gnmi.ModelData
 	}
 	capabilities, ok := resp.(*gnmi.CapabilityResponse)
 	if !ok {
-		return nil, &errors.ErrInvalidTypeAssertion{
+		return nil, &errors.InvalidTypeAssertionError{
 			Value: resp,
 			Type:  reflect.TypeOf(&gnmi.CapabilityResponse{}),
 		}