diff --git a/grpc/changeEvent.go b/grpc/changeEvent.go
index ace6bc7..c6f6376 100644
--- a/grpc/changeEvent.go
+++ b/grpc/changeEvent.go
@@ -22,7 +22,7 @@
 	ofp "github.com/donNewtonAlpha/goloxi/of13"
 	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/ofagent-go/openflow"
-	pb "github.com/opencord/voltha-protos/go/voltha"
+	pb "github.com/opencord/voltha-protos/v2/go/voltha"
 	"google.golang.org/grpc"
 	"log"
 	"net"
@@ -33,7 +33,7 @@
 	opt := grpc.EmptyCallOption{}
 	stream, err := client.ReceiveChangeEvents(context.Background(), &empty.Empty{}, opt)
 	if err != nil {
-		log.Fatalln("Unable to establish stream")
+		log.Fatalln("Unable to establish Receive Change Event Stream")
 	}
 	for {
 		changeEvent, err := stream.Recv()
@@ -80,7 +80,6 @@
 		var client = clientMap[deviceId]
 		if client == nil {
 			client = addClient(deviceId)
-
 			time.Sleep(2 * time.Second)
 		}
 		client.SendMessage(ofPortStatus)
diff --git a/grpc/client.go b/grpc/client.go
index ea32986..4116461 100644
--- a/grpc/client.go
+++ b/grpc/client.go
@@ -18,6 +18,7 @@
 
 import (
 	"context"
+	"sync"
 	"time"
 
 	"github.com/golang/protobuf/ptypes/empty"
@@ -27,7 +28,7 @@
 	"fmt"
 	"log"
 
-	pb "github.com/opencord/voltha-protos/go/voltha"
+	pb "github.com/opencord/voltha-protos/v2/go/voltha"
 	"google.golang.org/grpc"
 )
 
@@ -35,6 +36,7 @@
 var clientMap map[string]*openflow.Client
 var ofAddress string
 var ofPort uint16
+var mapLock sync.Mutex
 
 func StartClient(endpointAddress string, endpointPort uint16, openFlowAddress string, openFlowPort uint16) {
 	ofAddress = openFlowAddress
@@ -69,6 +71,7 @@
 }
 func refreshDeviceList(devices []*pb.LogicalDevice) {
 	//first find the new ones
+
 	var toAdd []string
 	var toDel []string
 	var deviceIdMap = make(map[string]string)
@@ -91,12 +94,20 @@
 	}
 	for i := 0; i < len(toDel); i++ {
 		clientMap[toDel[i]].End()
+		mapLock.Lock()
 		delete(clientMap, toDel[i])
+		mapLock.Unlock()
 	}
 }
 func addClient(deviceId string) *openflow.Client {
-	client := openflow.NewClient(ofAddress, ofPort, deviceId, true)
-	clientMap[deviceId] = client
+	mapLock.Lock()
+	var client *openflow.Client
+	client = clientMap[deviceId]
+	if client == nil {
+		client = openflow.NewClient(ofAddress, ofPort, deviceId, true)
+		clientMap[deviceId] = client
+	}
+	mapLock.Unlock()
 	return client
 }
 func GetClient(deviceId string) *openflow.Client {
diff --git a/grpc/packetIn.go b/grpc/packetIn.go
index 8200a37..44e537b 100644
--- a/grpc/packetIn.go
+++ b/grpc/packetIn.go
@@ -18,12 +18,13 @@
 
 import (
 	"context"
+	"encoding/json"
 	"github.com/donNewtonAlpha/goloxi"
 	ofp "github.com/donNewtonAlpha/goloxi/of13"
 	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/ofagent-go/openflow"
-	"github.com/opencord/voltha-protos/go/openflow_13"
-	pb "github.com/opencord/voltha-protos/go/voltha"
+	"github.com/opencord/voltha-protos/v2/go/openflow_13"
+	pb "github.com/opencord/voltha-protos/v2/go/voltha"
 	"google.golang.org/grpc"
 	"log"
 )
@@ -41,6 +42,8 @@
 		if err != nil {
 			log.Fatalf("error on stream.Rec %v", err)
 		}
+		js, _ := json.Marshal(packetIn)
+		log.Printf("PACKET IN %s", js)
 		deviceID := packet.GetId()
 		ofPacketIn := ofp.NewPacketIn()
 		ofPacketIn.SetVersion(uint8(4))
diff --git a/grpc/packetOut.go b/grpc/packetOut.go
index ee58a31..f1891e1 100644
--- a/grpc/packetOut.go
+++ b/grpc/packetOut.go
@@ -19,7 +19,7 @@
 import (
 	"encoding/json"
 	"github.com/opencord/ofagent-go/openflow"
-	pb "github.com/opencord/voltha-protos/go/voltha"
+	pb "github.com/opencord/voltha-protos/v2/go/voltha"
 	"google.golang.org/grpc"
 	"log"
 )
