diff --git a/internal/pkg/vpagent/connection.go b/internal/pkg/vpagent/connection.go
index 9e93ae2..e90eab1 100644
--- a/internal/pkg/vpagent/connection.go
+++ b/internal/pkg/vpagent/connection.go
@@ -20,14 +20,15 @@
 	"errors"
 	"time"
 
-	"github.com/golang/protobuf/ptypes/empty"
 	"voltha-go-controller/log"
+
+	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/voltha-lib-go/v7/pkg/probe"
 	"github.com/opencord/voltha-protos/v5/go/voltha"
 	"google.golang.org/grpc"
 )
 
-//GrpcMaxSize Max size of grpc message
+// GrpcMaxSize Max size of grpc message
 const GrpcMaxSize int = 17455678
 
 func (vpa *VPAgent) establishConnectionToVoltha(ctx context.Context, p *probe.Probe) error {
@@ -82,7 +83,7 @@
 
 // CloseConnectionToVoltha closes the grpc connection to VOLTHA
 func (vpa *VPAgent) CloseConnectionToVoltha() {
-	//Close the grpc connection to voltha
+	// Close the grpc connection to voltha
 	logger.Debug(ctx, "Closing voltha grpc connection")
 	vpa.volthaConnection.Close()
 }
diff --git a/internal/pkg/vpagent/packetIn.go b/internal/pkg/vpagent/packetIn.go
index 33a63b4..a0209f2 100644
--- a/internal/pkg/vpagent/packetIn.go
+++ b/internal/pkg/vpagent/packetIn.go
@@ -19,8 +19,9 @@
 	"context"
 	"io"
 
-	"github.com/golang/protobuf/ptypes/empty"
 	"voltha-go-controller/log"
+
+	"github.com/golang/protobuf/ptypes/empty"
 	"google.golang.org/grpc"
 )
 
diff --git a/internal/pkg/vpagent/packetOut.go b/internal/pkg/vpagent/packetOut.go
index ac9fa8b..d5787dd 100644
--- a/internal/pkg/vpagent/packetOut.go
+++ b/internal/pkg/vpagent/packetOut.go
@@ -19,6 +19,7 @@
 	"context"
 
 	"voltha-go-controller/log"
+
 	"google.golang.org/grpc"
 )
 
diff --git a/internal/pkg/vpagent/refresh.go b/internal/pkg/vpagent/refresh.go
index 71e33ad..2a8f2bc 100644
--- a/internal/pkg/vpagent/refresh.go
+++ b/internal/pkg/vpagent/refresh.go
@@ -21,8 +21,9 @@
 
 	"voltha-go-controller/internal/pkg/intf"
 
-	"github.com/golang/protobuf/ptypes/empty"
 	"voltha-go-controller/log"
+
+	"github.com/golang/protobuf/ptypes/empty"
 	"github.com/opencord/voltha-protos/v5/go/voltha"
 )
 
@@ -127,13 +128,12 @@
 			VolthaClient:     vpa.volthaClient,
 			PacketOutChannel: vpa.packetOutChannel,
 		})
-
 	}
 	logger.Debugw(ctx, "Finished with addClient", log.Fields{"deviceID": device.Id})
 	return vpc
 }
 
-//AddClientToClientMap - called by controller once device obj is created
+// AddClientToClientMap - called by controller once device obj is created
 func (vpa *VPAgent) AddClientToClientMap(deviceID string, vpc intf.IVPClient) {
 	vpa.mapLock.Lock()
 	defer vpa.mapLock.Unlock()
diff --git a/internal/pkg/vpagent/volthaprotoagent.go b/internal/pkg/vpagent/volthaprotoagent.go
index 6a3dcd4..3d962ef 100644
--- a/internal/pkg/vpagent/volthaprotoagent.go
+++ b/internal/pkg/vpagent/volthaprotoagent.go
@@ -25,6 +25,7 @@
 	"voltha-go-controller/internal/pkg/intf"
 
 	"voltha-go-controller/log"
+
 	"github.com/opencord/voltha-lib-go/v7/pkg/probe"
 	ofp "github.com/opencord/voltha-protos/v5/go/openflow_13"
 	"github.com/opencord/voltha-protos/v5/go/voltha"
@@ -63,21 +64,19 @@
 
 // VPAgent structure
 type VPAgent struct {
+	VPClientAgent             intf.IVPClientAgent
+	clientMap                 map[string]intf.IVPClient
+	packetInChannel           chan *ofp.PacketIn
+	packetOutChannel          chan *ofp.PacketOut
+	changeEventChannel        chan *ofp.ChangeEvent
+	volthaClient              *holder.VolthaServiceClientHolder
+	volthaConnection          *grpc.ClientConn
+	events                    chan vpaEvent
 	VolthaAPIEndPoint         string
+	mapLock                   sync.Mutex
 	DeviceListRefreshInterval time.Duration
-	ConnectionMaxRetries      int
 	ConnectionRetryDelay      time.Duration
-
-	volthaConnection *grpc.ClientConn
-	volthaClient     *holder.VolthaServiceClientHolder
-	mapLock          sync.Mutex
-	clientMap        map[string]intf.IVPClient
-	events           chan vpaEvent
-
-	packetInChannel    chan *ofp.PacketIn
-	packetOutChannel   chan *ofp.PacketOut
-	changeEventChannel chan *ofp.ChangeEvent
-	VPClientAgent      intf.IVPClientAgent
+	ConnectionMaxRetries      int
 }
 
 // NewVPAgent is constructor for VPAgent
@@ -122,7 +121,7 @@
 	return &vpa, nil
 }
 
-//GetVPAgent - returns vpAgent object
+// GetVPAgent - returns vpAgent object
 func GetVPAgent() *VPAgent {
 	return vpAgent
 }
@@ -132,9 +131,8 @@
 	return vpa.volthaClient.Get()
 }
 
-// Run - make the inital connection to voltha and kicks off io streams
+// Run - make the initial connection to voltha and kicks off io streams
 func (vpa *VPAgent) Run(ctx context.Context) {
-
 	logger.Debugw(ctx, "Starting GRPC - VOLTHA client",
 		log.Fields{
 			"voltha-endpoint": vpa.VolthaAPIEndPoint})
