diff --git a/controller/interfaces/networkdomain/pnd.go b/controller/interfaces/networkdomain/pnd.go
index 256e3ec43ff8c6278cfd8bded7451b3cde90901c..c252c77709af0bfc434556005cb1851ab083da5c 100644
--- a/controller/interfaces/networkdomain/pnd.go
+++ b/controller/interfaces/networkdomain/pnd.go
@@ -41,7 +41,7 @@ type NetworkDomain interface {
 
 // LoadedPnd represents a PND that was loaded.
 type LoadedPnd struct {
-	ID          string `json:"_id" bson:"_id"`
+	ID          string `json:"id" bson:"id"`
 	Name        string `json:"name,omitempty"`
 	Description string `json:"description,omitempty"`
 }
diff --git a/controller/nucleus/networkElementWatcher.go b/controller/nucleus/networkElementWatcher.go
index 2afb43c56caee13fd7c839bcf893918e44a83ef4..7cba403d1f452e74a39223d814c3d393c6deeed3 100644
--- a/controller/nucleus/networkElementWatcher.go
+++ b/controller/nucleus/networkElementWatcher.go
@@ -8,7 +8,6 @@ import (
 	"code.fbi.h-da.de/danet/gosdn/controller/customerrs"
 	"code.fbi.h-da.de/danet/gosdn/controller/event"
 	eventInterfaces "code.fbi.h-da.de/danet/gosdn/controller/interfaces/event"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkdomain"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/networkelement"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport"
 	"code.fbi.h-da.de/danet/gosdn/controller/nucleus/types"
@@ -22,7 +21,7 @@ import (
 
 const (
 	subscribeSampleInterval uint64 = 1000000000 // 1 second in nanoseconds
-	// TODO: These gNMI options are adjusted to arista gNMI fork. Change when switching to native gNMI.
+	// Note: These gNMI options are adjusted to arista gNMI fork. Change when switching to native gNMI.
 	gNMISubscribeMode string = "stream"
 	gNMIStreamMode    string = "on_change"
 )
@@ -63,37 +62,38 @@ func (n *NetworkElementWatcher) SubToNetworkElements(paths [][]string, opts *gnm
 		}
 	}
 
-	pnds, err := n.serviceManager.PndService.GetAll()
+	mnes, err := n.serviceManager.MneService.GetAll()
 	if err != nil {
 		log.Error(err)
+		return
 	}
 
-	for _, pnd := range pnds {
-		n.subscribeToPndNetworkElements(pnd, opts)
+	for _, mne := range mnes {
+		n.subscribeToPndNetworkElements(mne, opts)
 	}
 }
 
-func (n *NetworkElementWatcher) subscribeToPndNetworkElements(pnd networkdomain.NetworkDomain, opts *gnmi.SubscribeOptions) {
-	for _, mne := range pnd.NetworkElements() {
-		subID := uuid.New()
+func (n *NetworkElementWatcher) subscribeToPndNetworkElements(mne networkelement.NetworkElement, opts *gnmi.SubscribeOptions) {
+	subID := uuid.New()
 
-		stopContext, cancel := context.WithCancel(context.Background())
-		n.addToNetworkElementSubscriptions(subID, &networkelementSubscriptionHelper{
-			stopSubscribeCtx: stopContext,
-			stopFunc:         cancel,
-		})
-		go n.callSubscribe(stopContext, pnd.ID().String(), mne, opts)
-	}
+	stopContext, cancel := context.WithCancel(context.Background())
+	n.addToNetworkElementSubscriptions(subID, &networkelementSubscriptionHelper{
+		stopSubscribeCtx: stopContext,
+		stopFunc:         cancel,
+	})
+
+	go n.callSubscribe(stopContext, mne, opts)
 }
 
-func (n *NetworkElementWatcher) callSubscribe(stopContext context.Context, pndID string, mne networkelement.NetworkElement, opts *gnmi.SubscribeOptions) {
+func (n *NetworkElementWatcher) callSubscribe(stopContext context.Context, mne networkelement.NetworkElement, opts *gnmi.SubscribeOptions) {
 	gNMIOptionsCtx := context.Background()
 	gNMIOptionsCtx = context.WithValue(gNMIOptionsCtx, types.CtxKeyOpts, opts)
 
 	// SubscriptionInformation contains pnd ID, network element ID and name to be used in the internal subscribe to check
 	// from which network element a response was sent
 	if err := mne.Transport().ControlPlaneSubscribe(gNMIOptionsCtx, n.handleSubscribeResponse, &transport.SubscriptionInformation{
-		PndID:              pndID,
+		//TODO(PND): add pndID here, when adding pndID as reference to MNE!
+		//PndID:              pndID,
 		NetworkElementID:   mne.ID().String(),
 		NetworkElementName: mne.Name(),
 		StopContext:        stopContext,
@@ -148,17 +148,7 @@ func (n *NetworkElementWatcher) handleSubscribeResponse(resp *gpb.SubscribeRespo
 }
 
 func (n *NetworkElementWatcher) handleSubscribeResponseUpdate(resp *gpb.SubscribeResponse_Update, subscriptionInfo *transport.SubscriptionInformation) {
-	pndID, err := uuid.Parse(subscriptionInfo.PndID)
-	if err != nil {
-		log.Error(err)
-	}
-
-	pnd, err := n.serviceManager.PndService.Get(store.Query{ID: pndID})
-	if err != nil {
-		log.Error(err)
-	}
-
-	mne, err := pnd.GetNetworkElement(subscriptionInfo.NetworkElementID)
+	mne, err := n.serviceManager.MneService.Get(store.Query{ID: uuid.MustParse(subscriptionInfo.NetworkElementID)})
 	if err != nil {
 		log.Error(err)
 	}