diff --git a/Dockerfile.alpine b/Dockerfile.alpine
index acfb373d181f781c06943dc9248dc10a2e9db699..e09e1d572c95409110a10d7007134bfe86a67828 100644
--- a/Dockerfile.alpine
+++ b/Dockerfile.alpine
@@ -6,7 +6,6 @@ WORKDIR /src/gosdn
 COPY . .
 RUN apk add --no-cache git
 RUN git config --global url."https://$GITLAB_USER:$GITLAB_TOKEN@code.fbi.h-da.de".insteadOf "https://code.fbi.h-da.de"
-RUN go mod tidy
 RUN GOOS=linux go build -o gosdn ./cmd/gosdn
 
 FROM alpine
diff --git a/api/apiIntegration_test.go b/api/apiIntegration_test.go
index 2b4de2dc543b751dc79fa8e64f50dd3e4cc93b03..ac9b296253f664b0b8546ddaa72a753b570ccd04 100644
--- a/api/apiIntegration_test.go
+++ b/api/apiIntegration_test.go
@@ -1,87 +1,15 @@
 package api
 
 import (
-	"os"
 	"testing"
 
 	"code.fbi.h-da.de/cocsn/api/go/gosdn/pnd"
 	tpb "code.fbi.h-da.de/cocsn/api/go/gosdn/transport"
-	"code.fbi.h-da.de/cocsn/gosdn/nucleus/util/proto"
+	"github.com/google/uuid"
 	guuid "github.com/google/uuid"
-	gpb "github.com/openconfig/gnmi/proto/gnmi"
-	log "github.com/sirupsen/logrus"
 	"github.com/spf13/viper"
-	pb "google.golang.org/protobuf/proto"
 )
 
-const unreachable = "203.0.113.10:6030"
-const testPath = "/system/config/hostname"
-
-var testAddress = "141.100.70.170:6030"
-var testAPIEndpoint = "gosdn-latest.apps.ocp.fbi.h-da.de"
-var testUsername = "admin"
-var testPassword = "arista"
-var opt *tpb.TransportOption
-var gnmiMessages map[string]pb.Message
-
-func TestMain(m *testing.M) {
-	testSetupIntegration()
-	os.Exit(m.Run())
-}
-
-func testSetupIntegration() {
-	if os.Getenv("GOSDN_LOG") == "nolog" {
-		log.SetLevel(log.PanicLevel)
-	}
-
-	addr := os.Getenv("GOSDN_TEST_ENDPOINT")
-	if addr != "" {
-		testAddress = addr
-		log.Infof("GOSDN_TEST_ENDPOINT set to %v", testAddress)
-	}
-	api := os.Getenv("GOSDN_TEST_API_ENDPOINT")
-	if api != "" {
-		testAPIEndpoint = api
-		log.Infof("GOSDN_TEST_API_ENDPOINT set to %v", testAPIEndpoint)
-	}
-	u := os.Getenv("GOSDN_TEST_USER")
-	if u != "" {
-		testUsername = u
-		log.Infof("GOSDN_TEST_USER set to %v", testUsername)
-	}
-	p := os.Getenv("GOSDN_TEST_PASSWORD")
-	if p != "" {
-		testPassword = p
-		log.Infof("GOSDN_TEST_PASSWORD set to %v", testPassword)
-	}
-
-	gnmiMessages = map[string]pb.Message{
-		"../test/proto/cap-resp-arista-ceos":                  &gpb.CapabilityResponse{},
-		"../test/proto/req-full-node":                         &gpb.GetRequest{},
-		"../test/proto/req-full-node-arista-ceos":             &gpb.GetRequest{},
-		"../test/proto/req-interfaces-arista-ceos":            &gpb.GetRequest{},
-		"../test/proto/req-interfaces-interface-arista-ceos":  &gpb.GetRequest{},
-		"../test/proto/req-interfaces-wildcard":               &gpb.GetRequest{},
-		"../test/proto/resp-full-node":                        &gpb.GetResponse{},
-		"../test/proto/resp-full-node-arista-ceos":            &gpb.GetResponse{},
-		"../test/proto/resp-interfaces-arista-ceos":           &gpb.GetResponse{},
-		"../test/proto/resp-interfaces-interface-arista-ceos": &gpb.GetResponse{},
-		"../test/proto/resp-interfaces-wildcard":              &gpb.GetResponse{},
-		"../test/proto/resp-set-system-config-hostname":       &gpb.SetResponse{},
-	}
-	for k, v := range gnmiMessages {
-		if err := proto.Read(k, v); err != nil {
-			log.Fatalf("error parsing %v: %v", k, err)
-		}
-	}
-
-	opt = &tpb.TransportOption{
-		Address:  testAddress,
-		Username: testUsername,
-		Password: testPassword,
-	}
-}
-
 func TestApiIntegration(t *testing.T) {
 	// TDOO: Remove once openshift grpc support is available
 	t.Skip("skipped due to openshift limitations")
@@ -111,24 +39,38 @@ func TestApiIntegration(t *testing.T) {
 			cliPnd := viper.GetString("CLI_PND")
 			cliSbi := viper.GetString("CLI_SBI")
 
+			suid, err := uuid.Parse(cliSbi)
+			if err != nil {
+				t.Error(err)
+			}
+			puid, err := uuid.Parse(cliPnd)
+			if err != nil {
+				t.Error(err)
+			}
+
+			opt := &tpb.TransportOption{
+				Address:  testAddress,
+				Username: testUsername,
+				Password: testPassword,
+				TransportOption: &tpb.TransportOption_GnmiTransportOption{
+					GnmiTransportOption: &tpb.GnmiTransportOption{},
+				},
+			}
 			if _, err := addDevice(
 				testAPIEndpoint,
-				testUsername,
-				testPassword,
-				cliSbi,
-				cliPnd,
-				testAddress,
 				"test-device",
+				opt,
+				suid,
+				puid,
 			); (err != nil) != tt.wantErr {
 				t.Errorf("gosdn cli add-device error = %v, wantErr %v", err, tt.wantErr)
 				return
 			}
 			did := viper.GetString("LAST_DEVICE_UUID")
 
-			_, err := getDevice(
+			_, err = getDevice(
 				testAPIEndpoint,
 				cliPnd,
-				testPath,
 				did,
 			)
 			if (err != nil) != tt.wantErr {
diff --git a/nucleus/device.go b/nucleus/device.go
index 4c828772fdc9f56e9837b786301c6c4b58b93a3a..a324d1813d055a1528df13c28b88585d53735183 100644
--- a/nucleus/device.go
+++ b/nucleus/device.go
@@ -24,6 +24,18 @@ func NewDevice(name string, opt *tpb.TransportOption, sbi southbound.SouthboundI
 		name = namesgenerator.GetRandomName(0)
 	}
 
+	if opt.Csbi {
+		return &CsbiDevice{
+			CommonDevice: CommonDevice{
+				UUID:      uuid.New(),
+				GoStruct:  sbi.Schema().Root,
+				sbi:       sbi,
+				transport: t,
+				name:      name,
+			},
+		}, nil
+	}
+
 	return &CommonDevice{
 		UUID:      uuid.New(),
 		GoStruct:  sbi.Schema().Root,
diff --git a/nucleus/principalNetworkDomain.go b/nucleus/principalNetworkDomain.go
index 1b91f5721fac04ffa86fba64dd874eede31ced6d..d2b4d6d3d8e6e011982da9cad0ce38b318e9d83a 100644
--- a/nucleus/principalNetworkDomain.go
+++ b/nucleus/principalNetworkDomain.go
@@ -412,19 +412,14 @@ func (pnd *pndImplementation) createCsbiDevice(name string, d *cpb.Deployment, o
 			panic(err)
 		}
 		opt.Address = deviceDetails.Address
-		t, err := NewTransport(opt, csbi)
+
+		d, err := NewDevice(name, opt, csbi)
 		if err != nil {
 			panic(err)
 		}
-		d := &CsbiDevice{
-			CommonDevice: CommonDevice{
-				name:      name,
-				UUID:      id,
-				transport: t,
-			},
-		}
+		d.(*CsbiDevice).UUID = id
 		ch <- DeviceDetails{TransportOption: opt}
-		if err := pnd.devices.Add(d, d.name); err != nil {
+		if err := pnd.devices.Add(d, d.Name()); err != nil {
 			panic(err)
 		}
 		pnd.callback(id, nil)