diff --git a/controller/northbound/server/configurationmanagement.go b/controller/northbound/server/configurationmanagement.go
index 7dd74e3cc851eabd66ae09c30166ca7a1dda0811..ebe8436db8457ad8c095a9a759078729a2db8f0d 100644
--- a/controller/northbound/server/configurationmanagement.go
+++ b/controller/northbound/server/configurationmanagement.go
@@ -337,6 +337,10 @@ func (c ConfigurationManagementServer) createNetworkElements(sdnConfig *loadedSD
 			return err
 		}
 
+		if err := c.pluginService.Add(plugin); err != nil {
+			return err
+		}
+
 		err = c.mneService.UpdateModel(createdNetworkElement.ID(), inputNetworkElement.Model)
 		if err != nil {
 			return err
diff --git a/controller/northbound/server/networkElement.go b/controller/northbound/server/networkElement.go
index 1528f7514638f0cad0540205ef70fc1044f61e9e..7455a040c5b6403cd1c4f0804ddf103cf4a552a8 100644
--- a/controller/northbound/server/networkElement.go
+++ b/controller/northbound/server/networkElement.go
@@ -707,25 +707,6 @@ func (n *NetworkElementServer) SetMneList(ctx context.Context, request *mnepb.Se
 func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb.TransportOption, requestPluginFunc func(uuid.UUID) (plugin.Plugin, error), pluginID uuid.UUID, pndID uuid.UUID, optionalNetworkElementID ...uuid.UUID) (uuid.UUID, error) {
 	var err error
 
-	// Note: cSBI not supported currently, so this is commented fow now.
-	// Might be needed or removed in the future.
-	//
-	// switch t := opt.Type; t {
-	// case spb.Type_TYPE_CONTAINERISED:
-	// 	return n.handleCsbiEnrolment(name, opt)
-	// case spb.Type_TYPE_PLUGIN:
-	// 	sbi, err = n.requestPlugin(name, opt)
-	// 	if err != nil {
-	// 		return uuid.Nil, err
-	// 	}
-	// default:
-	// 	var err error
-	// 	sbi, err = pnd.southboundService.Get(store.Query{ID: sid})
-	// 	if err != nil {
-	// 		return uuid.Nil, err
-	// 	}
-	// }
-
 	networkElementID := uuid.Nil
 	if len(optionalNetworkElementID) > 0 {
 		networkElementID = optionalNetworkElementID[0]
@@ -761,6 +742,11 @@ func (n *NetworkElementServer) addMne(ctx context.Context, name string, opt *tpb
 			return uuid.Nil, err
 		}
 
+		err = n.pluginService.Add(plugin)
+		if err != nil {
+			return uuid.Nil, err
+		}
+
 		n.networkElementWatchter.SubscribeToNetworkElement(mne, config.GetGnmiSubscriptionPaths(), nil)
 	} else {
 		return uuid.Nil, status.Errorf(codes.InvalidArgument, "invalid transport data provided")
diff --git a/controller/nucleus/pluginService.go b/controller/nucleus/pluginService.go
index ed7a7ab689cd65e1c7f8ae408de107812a1f454b..4b041518174b082d70590b5f2dfdfeb0cdf3c3bf 100644
--- a/controller/nucleus/pluginService.go
+++ b/controller/nucleus/pluginService.go
@@ -167,10 +167,6 @@ func (s *PluginService) RequestPlugin(requestID uuid.UUID) (plugin.Plugin, error
 		return nil, err
 	}
 
-	if err := s.Add(plugin); err != nil {
-		return nil, err
-	}
-
 	return plugin, nil
 }