diff --git a/mocks/mockKVClient.go b/mocks/mockKVClient.go
index b74f5dd..b6ba991 100644
--- a/mocks/mockKVClient.go
+++ b/mocks/mockKVClient.go
@@ -53,7 +53,7 @@
 }
 
 // List mock function implementation for KVClient
-func (kvclient *MockKVClient) List(key string, timeout int, lock ...bool) (map[string]*kvstore.KVPair, error) {
+func (kvclient *MockKVClient) List(key string, timeout int) (map[string]*kvstore.KVPair, error) {
 	if key != "" {
 		maps := make(map[string]*kvstore.KVPair)
 		maps[key] = &kvstore.KVPair{Key: key}
@@ -63,7 +63,7 @@
 }
 
 // Get mock function implementation for KVClient
-func (kvclient *MockKVClient) Get(key string, timeout int, lock ...bool) (*kvstore.KVPair, error) {
+func (kvclient *MockKVClient) Get(key string, timeout int) (*kvstore.KVPair, error) {
 	log.Debugw("Warning Warning Warning: Get of MockKVClient called", log.Fields{"key": key})
 	if key != "" {
 		log.Debug("Warning Key Not Blank")
@@ -155,7 +155,7 @@
 }
 
 // Put mock function implementation for KVClient
-func (kvclient *MockKVClient) Put(key string, value interface{}, timeout int, lock ...bool) error {
+func (kvclient *MockKVClient) Put(key string, value interface{}, timeout int) error {
 	if key != "" {
 
 		return nil
@@ -164,7 +164,7 @@
 }
 
 // Delete mock function implementation for KVClient
-func (kvclient *MockKVClient) Delete(key string, timeout int, lock ...bool) error {
+func (kvclient *MockKVClient) Delete(key string, timeout int) error {
 	if key == "" {
 		return errors.New("key didn't find")
 	}
diff --git a/mocks/mockTechprofile.go b/mocks/mockTechprofile.go
index 7cb53fd..7f4a0f9 100644
--- a/mocks/mockTechprofile.go
+++ b/mocks/mockTechprofile.go
@@ -18,7 +18,7 @@
 package mocks
 
 import (
-	"github.com/opencord/voltha-lib-go/v2/pkg/db/model"
+	"github.com/opencord/voltha-lib-go/v2/pkg/db"
 	"github.com/opencord/voltha-lib-go/v2/pkg/log"
 	tp "github.com/opencord/voltha-lib-go/v2/pkg/techprofile"
 	tp_pb "github.com/opencord/voltha-protos/v2/go/tech_profile"
@@ -30,8 +30,8 @@
 }
 
 // SetKVClient to mock tefhprofile SetKVClient method
-func (m MockTechProfile) SetKVClient() *model.Backend {
-	return &model.Backend{Client: &MockKVClient{}}
+func (m MockTechProfile) SetKVClient() *db.Backend {
+	return &db.Backend{Client: &MockKVClient{}}
 }
 
 // GetTechProfileInstanceKVPath to mock tefhprofile GetTechProfileInstanceKVPath method
