diff --git a/integration-tests/lab_tests/lab00_test.go b/integration-tests/lab_tests/lab00/lab00_test.go
similarity index 83%
rename from integration-tests/lab_tests/lab00_test.go
rename to integration-tests/lab_tests/lab00/lab00_test.go
index a2c5be7013cc4e91920da6e4a2bd00af0ac6106d..f1fe302a7c7ce2f4278c7fd9d56f2f0234846875 100644
--- a/integration-tests/lab_tests/lab00_test.go
+++ b/integration-tests/lab_tests/lab00/lab00_test.go
@@ -1,10 +1,11 @@
-package integration_test_labs
+package integration_test_lab_00
 
 import (
 	"context"
 	"fmt"
 	"testing"
 
+	lab_utility "code.fbi.h-da.de/danet/gosdn/-/tree/349-integration-test-for-lab01/integration-tests/lab_tests/utils/labUtils"
 	mnepb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/networkelement"
 	integration_test_utils "code.fbi.h-da.de/danet/gosdn/integration-tests/integrationTestUtils"
 	"github.com/stretchr/testify/assert"
@@ -80,7 +81,7 @@ func TestLab00(t *testing.T) {
 
 	// Create the two managed network elements.
 	for i, mne := range managedNetworkElements {
-		alr := createAddListRequestSingleMne(mne.addr, mne.name, mne.id, integration_test_utils.DefaultTargetUsername, integration_test_utils.DefaultTargetPassword)
+		alr := lab_utility.createAddListRequestSingleMne(mne.addr, mne.name, mne.id, integration_test_utils.DefaultTargetUsername, integration_test_utils.DefaultTargetPassword)
 
 		_, err := mneService.AddList(ctx, alr)
 		if err != nil {
@@ -102,7 +103,7 @@ func TestLab00(t *testing.T) {
 
 	// Check the initial hostname of both managed network elements.
 	for _, mne := range managedNetworkElements {
-		hostnameRequest := getHostnameSingleMne(mne.id)
+		hostnameRequest := lab_utility.getHostnameSingleMne(mne.id)
 		resp, err := mneService.GetPath(ctx, hostnameRequest)
 		if err != nil {
 			t.Error(err)
@@ -115,7 +116,7 @@ func TestLab00(t *testing.T) {
 	// Change the hostname of both managed network elements.
 
 	for _, mne := range managedNetworkElements {
-		hostnamePathListRequest, err := setHostnamePathListRequestSingleMne(mne.id, mne.newHostname, mnepb.ApiOperation_API_OPERATION_UPDATE)
+		hostnamePathListRequest, err := lab_utility.setHostnamePathListRequestSingleMne(mne.id, mne.newHostname, mnepb.ApiOperation_API_OPERATION_UPDATE)
 		if err != nil {
 			t.Error(err)
 		}
@@ -128,14 +129,14 @@ func TestLab00(t *testing.T) {
 		assert.Equal(t, 1, len(setResp.GetResponses()), "A single path change for the hostname has been requested. Therefore exactly one response is expected.")
 
 		// Commit the change.
-		commitChange := commitOrConfirmChange(setResp.GetResponses()[0].GetId(), mnepb.Operation_OPERATION_COMMIT)
+		commitChange := lab_utility.commitOrConfirmChange(setResp.GetResponses()[0].GetId(), mnepb.Operation_OPERATION_COMMIT)
 		_, err = mneService.SetChangeList(ctx, commitChange)
 		if err != nil {
 			t.Error(err)
 		}
 
 		// Confirm the change.
-		confirmChange := commitOrConfirmChange(setResp.GetResponses()[0].GetId(), mnepb.Operation_OPERATION_CONFIRM)
+		confirmChange := lab_utility.commitOrConfirmChange(setResp.GetResponses()[0].GetId(), mnepb.Operation_OPERATION_CONFIRM)
 		_, err = mneService.SetChangeList(ctx, confirmChange)
 		if err != nil {
 			t.Error(err)
@@ -145,7 +146,7 @@ func TestLab00(t *testing.T) {
 	// Check if the hostname has been changed and is accessible through a
 	// GetPath request.
 	for _, mne := range managedNetworkElements {
-		hostnameRequest := getHostnameSingleMne(mne.id)
+		hostnameRequest := lab_utility.getHostnameSingleMne(mne.id)
 		resp, err := mneService.GetPath(ctx, hostnameRequest)
 		if err != nil {
 			t.Error(err)
diff --git a/integration-tests/lab_tests/labUtility_test.go b/integration-tests/lab_tests/utils/labUtils.go
similarity index 82%
rename from integration-tests/lab_tests/labUtility_test.go
rename to integration-tests/lab_tests/utils/labUtils.go
index 8ef246c3549b254336a8c1cf049d8770d3916570..c8d76943fed84db6eea52138e41c6bc3fe3edc34 100644
--- a/integration-tests/lab_tests/labUtility_test.go
+++ b/integration-tests/lab_tests/utils/labUtils.go
@@ -1,4 +1,4 @@
-package integration_test_labs
+package lab_utils
 
 import (
 	mnepb "code.fbi.h-da.de/danet/gosdn/api/go/gosdn/networkelement"
@@ -8,7 +8,7 @@ import (
 	"github.com/openconfig/ygot/ygot"
 )
 
-func getHostnameSingleMne(mneId string) *mnepb.GetPathRequest {
+func GetHostnameSingleMne(mneId string, pndID string) *mnepb.GetPathRequest {
 	gpr := &mnepb.GetPathRequest{
 		Timestamp: integration_test_utils.GetTimestamp(),
 		Mneid:     mneId,
@@ -19,7 +19,7 @@ func getHostnameSingleMne(mneId string) *mnepb.GetPathRequest {
 	return gpr
 }
 
-func commitOrConfirmChange(cid string, operation mnepb.Operation) *mnepb.SetChangeListRequest {
+func CommitOrConfirmChange(cid string, operation mnepb.Operation, pndID string) *mnepb.SetChangeListRequest {
 	sclr := &mnepb.SetChangeListRequest{
 		Timestamp: integration_test_utils.GetTimestamp(),
 		Change: []*mnepb.SetChange{{
@@ -31,7 +31,7 @@ func commitOrConfirmChange(cid string, operation mnepb.Operation) *mnepb.SetChan
 	return sclr
 }
 
-func setHostnamePathListRequestSingleMne(mneId string, newHostname string, operation mnepb.ApiOperation) (*mnepb.SetPathListRequest, error) {
+func SetHostnamePathListRequestSingleMne(mneId string, newHostname string, operation mnepb.ApiOperation) (*mnepb.SetPathListRequest, error) {
 	hostnamePath, err := ygot.StringToStructuredPath("/system/config/hostname")
 	if err != nil {
 		return nil, err
@@ -55,7 +55,7 @@ func setHostnamePathListRequestSingleMne(mneId string, newHostname string, opera
 	return splr, nil
 }
 
-func createAddListRequestSingleMne(addr, name, id, username, password string) *mnepb.AddListRequest {
+func CreateAddListRequestSingleMne(addr, name, id, username, password string, pndID string) *mnepb.AddListRequest {
 	opt := &tpb.TransportOption{
 		Address:  addr,
 		Username: username,