diff --git a/pkg/mocks/mockCoreClient.go b/pkg/mocks/mockCoreClient.go
index 28a4324..1825f5e 100644
--- a/pkg/mocks/mockCoreClient.go
+++ b/pkg/mocks/mockCoreClient.go
@@ -27,14 +27,14 @@
 	vgrpc "github.com/opencord/voltha-lib-go/v7/pkg/grpc"
 	"github.com/opencord/voltha-protos/v5/go/common"
 	ca "github.com/opencord/voltha-protos/v5/go/core_adapter"
-	"github.com/opencord/voltha-protos/v5/go/health"
+	"github.com/opencord/voltha-protos/v5/go/core_service"
 	"github.com/opencord/voltha-protos/v5/go/voltha"
 	"google.golang.org/grpc"
 )
 
 // NewMockCoreClient creates a new mock core client for a given core service
 func NewMockCoreClient(coreService *MockCoreService) *vgrpc.Client {
-	cc, _ := vgrpc.NewClient("mock-local-endpoint", "mock-remote-endpoint", nil)
+	cc, _ := vgrpc.NewClient("mock-core-endpoint", "mock-server-endpoint", "core_service.CoreService", nil)
 	cc.SetService(coreService)
 	return cc
 }
@@ -47,11 +47,6 @@
 	DevicePorts map[string][]*voltha.Port
 }
 
-// GetHealthStatus implements mock GetHealthStatus
-func (mcs MockCoreService) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
-	return &health.HealthStatus{State: health.HealthStatus_HEALTHY}, nil
-}
-
 // RegisterAdapter implements mock RegisterAdapter
 func (mcs MockCoreService) RegisterAdapter(ctx context.Context, in *ca.AdapterRegistration, opts ...grpc.CallOption) (*empty.Empty, error) {
 	if ctx == nil || in.Adapter == nil || in.DTypes == nil {
@@ -232,6 +227,11 @@
 	return &empty.Empty{}, nil
 }
 
+// GetHealthStatus implements mock GetHealthStatus
+func (mcs MockCoreService) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (core_service.CoreService_GetHealthStatusClient, error) {
+	return nil, nil
+}
+
 // Additional API found in the Core - unused?
 
 // ReconcileChildDevices implements mock ReconcileChildDevices
diff --git a/pkg/mocks/mockOnuInterAdapterClient.go b/pkg/mocks/mockOnuInterAdapterClient.go
index 2a751d7..dbd6e7d 100644
--- a/pkg/mocks/mockOnuInterAdapterClient.go
+++ b/pkg/mocks/mockOnuInterAdapterClient.go
@@ -22,15 +22,14 @@
 
 	"github.com/golang/protobuf/ptypes/empty"
 	vgrpc "github.com/opencord/voltha-lib-go/v7/pkg/grpc"
-	"github.com/opencord/voltha-protos/v5/go/common"
-	"github.com/opencord/voltha-protos/v5/go/health"
 	ia "github.com/opencord/voltha-protos/v5/go/inter_adapter"
+	"github.com/opencord/voltha-protos/v5/go/onu_inter_adapter_service"
 	"google.golang.org/grpc"
 )
 
 // NewMockChildAdapterClient create a mock child adapter client
 func NewMockChildAdapterClient(srv *MockOnuInterAdapterService) *vgrpc.Client {
-	cc, _ := vgrpc.NewClient("mock-local-endpoint", "mock-remote-endpoint", nil)
+	cc, _ := vgrpc.NewClient("mock-child-endpoint", "mock-server-endpoint", "OnuInterAdapterService", nil)
 	cc.SetService(srv)
 	return cc
 }
@@ -39,11 +38,6 @@
 type MockOnuInterAdapterService struct {
 }
 
-// GetHealthStatus implements mock GetHealthStatus
-func (mos MockOnuInterAdapterService) GetHealthStatus(ctx context.Context, in *common.Connection, opts ...grpc.CallOption) (*health.HealthStatus, error) {
-	return &health.HealthStatus{State: health.HealthStatus_HEALTHY}, nil
-}
-
 // OnuIndication implements mock OnuIndication
 func (mos *MockOnuInterAdapterService) OnuIndication(ctx context.Context, in *ia.OnuIndicationMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
 	return &empty.Empty{}, nil
@@ -68,3 +62,8 @@
 func (mos *MockOnuInterAdapterService) DeleteTCont(ctx context.Context, in *ia.DeleteTcontMessage, opts ...grpc.CallOption) (*empty.Empty, error) {
 	return &empty.Empty{}, nil
 }
+
+// GetHealthStatus implements mock GetHealthStatus
+func (mos MockOnuInterAdapterService) GetHealthStatus(ctx context.Context, opts ...grpc.CallOption) (onu_inter_adapter_service.OnuInterAdapterService_GetHealthStatusServer, error) {
+	return nil, nil
+}
