diff --git a/controller/nucleus/networkElement_test.go b/controller/nucleus/networkElement_test.go
index 4f5c875341f5bdc842a6dbb92afff26b90bd7bab..5d24298e81fcf31c9dd466c28e0c0239db18a513 100644
--- a/controller/nucleus/networkElement_test.go
+++ b/controller/nucleus/networkElement_test.go
@@ -5,20 +5,18 @@ import (
 	"testing"
 
 	"code.fbi.h-da.de/danet/gosdn/controller/conflict"
-	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/southbound"
+	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/plugin"
 	"code.fbi.h-da.de/danet/gosdn/controller/interfaces/transport"
+	"code.fbi.h-da.de/danet/gosdn/controller/mocks"
 
 	tpb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/transport"
 
-	"code.fbi.h-da.de/danet/gosdn/models/generated/openconfig"
 	"github.com/google/uuid"
-	"github.com/openconfig/ygot/ygot"
 )
 
 func TestNetworkElement_Id(t *testing.T) {
 	type fields struct {
-		Model     ygot.ValidatedGoStruct
-		SBI       southbound.SouthboundInterface
+		Plugin    plugin.Plugin
 		Transport transport.Transport
 		UUID      uuid.UUID
 		Name      string
@@ -39,8 +37,7 @@ func TestNetworkElement_Id(t *testing.T) {
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {
 			d := &CommonNetworkElement{
-				Plugin:    tt.fields.Model,
-				sbi:       tt.fields.SBI,
+				Plugin:    tt.fields.Plugin,
 				transport: tt.fields.Transport,
 				UUID:      tt.fields.UUID,
 				name:      tt.fields.Name,
@@ -53,11 +50,11 @@ func TestNetworkElement_Id(t *testing.T) {
 }
 
 func TestNewNetworkElement(t *testing.T) {
-	sbi := &OpenConfig{}
+	mockPlugin := mockPlugin(t)
 	type args struct {
-		sbi  southbound.SouthboundInterface
-		opts *tpb.TransportOption
-		name string
+		plugin plugin.Plugin
+		opts   *tpb.TransportOption
+		name   string
 	}
 	tests := []struct {
 		name    string
@@ -67,7 +64,7 @@ func TestNewNetworkElement(t *testing.T) {
 		{
 			name: "default",
 			args: args{
-				sbi: sbi,
+				plugin: mockPlugin,
 				opts: &tpb.TransportOption{
 					Address:  "test:///",
 					Username: "test",
@@ -87,7 +84,7 @@ func TestNewNetworkElement(t *testing.T) {
 		{
 			name: "invalid options",
 			args: args{
-				sbi: sbi,
+				plugin: mockPlugin,
 				opts: &tpb.TransportOption{
 					Address:  "test:///",
 					Username: "test",
@@ -102,21 +99,18 @@ func TestNewNetworkElement(t *testing.T) {
 		tt := tt
 		t.Run(tt.name, func(t *testing.T) {
 			t.Parallel()
-			resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.sbi, conflict.Metadata{})
+			resp, err := NewNetworkElement(tt.args.name, uuid.Nil, tt.args.opts, tt.args.plugin, conflict.Metadata{})
 			if (err != nil) != tt.wantErr {
 				t.Errorf("NewNetworkElement() error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
 			if resp != nil {
-				if reflect.TypeOf(resp.GetModel()) != reflect.TypeOf(&openconfig.Device{}) {
-					t.Error("NewNetworkElement() returned invalid GoStruct")
+				if reflect.TypeOf(resp.GetPlugin()) != reflect.TypeOf(&mocks.Plugin{}) {
+					t.Error("NewNetworkElement() returned invalid plugin")
 				}
 				if reflect.TypeOf(resp.Transport()) != reflect.TypeOf(&Gnmi{}) {
 					t.Error("NewNetworkElement() returned invalid transport")
 				}
-				if reflect.TypeOf(resp.SBI()) != reflect.TypeOf(&OpenConfig{}) {
-					t.Error("NewNetworkElement() returned invalid GoStruct")
-				}
 				if resp.Name() != "MyNetworkElement" {
 					t.Error("NewNetworkElement() returned wrong name")
 				}