diff --git a/rw_core/mocks/adapter.go b/rw_core/mocks/adapter.go
index 5b8cc1b..b99ca52 100644
--- a/rw_core/mocks/adapter.go
+++ b/rw_core/mocks/adapter.go
@@ -169,16 +169,16 @@
 	ta.Probe.UpdateStatus(ctx, serviceName, probe.ServiceStatusStopped)
 }
 
-func setAndTestCoreServiceHandler(ctx context.Context, conn *grpc.ClientConn) interface{} {
+func setAndTestCoreServiceHandler(ctx context.Context, conn *grpc.ClientConn, clientConn *common.Connection) interface{} {
 	svc := core_service.NewCoreServiceClient(conn)
-	if h, err := svc.GetHealthStatus(ctx, &empty.Empty{}); err != nil || h.State != health.HealthStatus_HEALTHY {
+	if h, err := svc.GetHealthStatus(ctx, clientConn); err != nil || h.State != health.HealthStatus_HEALTHY {
 		return nil
 	}
 	return svc
 }
 
 // gRPC service
-func (ta *Adapter) GetHealthStatus(ctx context.Context, empty *empty.Empty) (*health.HealthStatus, error) {
+func (ta *Adapter) GetHealthStatus(ctx context.Context, clientConn *common.Connection) (*health.HealthStatus, error) {
 	return &health.HealthStatus{State: health.HealthStatus_HEALTHY}, nil
 }
 
diff --git a/rw_core/mocks/adapter_olt.go b/rw_core/mocks/adapter_olt.go
index 9bfb2d8..96dfb33 100644
--- a/rw_core/mocks/adapter_olt.go
+++ b/rw_core/mocks/adapter_olt.go
@@ -91,9 +91,10 @@
 	go oltA.startGRPCService(ctx, oltA.grpcServer, oltA, "olt-grpc-service")
 
 	// Establish grpc connection to Core
-	if oltA.coreClient, err = vgrpc.NewClient(oltA.coreEnpoint,
-		oltA.oltRestarted,
-		vgrpc.ActivityCheck(true)); err != nil {
+	if oltA.coreClient, err = vgrpc.NewClient(
+		"olt-endpoint",
+		oltA.coreEnpoint,
+		oltA.oltRestarted); err != nil {
 		logger.Fatal(ctx, "grpc-client-not-created")
 	}
 
diff --git a/rw_core/mocks/adapter_onu.go b/rw_core/mocks/adapter_onu.go
index 7712b23..d5669c3 100644
--- a/rw_core/mocks/adapter_onu.go
+++ b/rw_core/mocks/adapter_onu.go
@@ -86,9 +86,10 @@
 	go onuA.startGRPCService(ctx, onuA.grpcServer, onuA, "onu-grpc-service")
 
 	// Establish grpc connection to Core
-	if onuA.coreClient, err = vgrpc.NewClient(onuA.coreEnpoint,
-		onuA.onuRestarted,
-		vgrpc.ActivityCheck(true)); err != nil {
+	if onuA.coreClient, err = vgrpc.NewClient(
+		"onu-endpoint",
+		onuA.coreEnpoint,
+		onuA.onuRestarted); err != nil {
 		logger.Fatal(ctx, "grpc-client-not-created")
 	}
 	go onuA.coreClient.Start(probeCtx, setAndTestCoreServiceHandler)
