diff --git a/.golangci.yml b/.golangci.yml
index 76983ed..9a4673e 100644
--- a/.golangci.yml
+++ b/.golangci.yml
@@ -83,4 +83,5 @@
     - "don't use underscores in Go names; method Enable_port"
     - "don't use underscores in Go names; method Child_device_lost"
     - "don't use underscores in Go names; method Start_omci_test"
+    - "don't use underscores in Go names; method Get_ext_value"
   exclude-use-default: false
diff --git a/internal/pkg/core/device_handler.go b/internal/pkg/core/device_handler.go
index ba40532..31ad3a2 100644
--- a/internal/pkg/core/device_handler.go
+++ b/internal/pkg/core/device_handler.go
@@ -2182,11 +2182,11 @@
 func (dh *DeviceHandler) getExtValue(device *voltha.Device, value voltha.ValueType_Type) (*voltha.ReturnValues, error) {
 	var err error
 	var ID uint32
+	var sn *oop.SerialNumber
 	resp := new(voltha.ReturnValues)
 	valueparam := new(oop.ValueParam)
 	ctx := context.Background()
 	log.Infow("getExtValue", log.Fields{"onu-id": device.Id, "pon-intf": device.ParentPortNo})
-	sn := new(oop.SerialNumber)
 	if sn, err = dh.deStringifySerialNumber(device.SerialNumber); err != nil {
 		return nil, err
 	}
diff --git a/internal/pkg/core/openolt.go b/internal/pkg/core/openolt.go
index 7343c94..335a424 100644
--- a/internal/pkg/core/openolt.go
+++ b/internal/pkg/core/openolt.go
@@ -174,7 +174,7 @@
 
 //Process_inter_adapter_message sends messages to a target device (between adapters)
 func (oo *OpenOLT) Process_inter_adapter_message(msg *ic.InterAdapterMessage) error {
-	logger.Infow("Process_inter_adapter_message", log.Fields{"msgId": msg.Header.Id})
+	logger.Debugw("Process_inter_adapter_message", log.Fields{"msgId": msg.Header.Id})
 	targetDevice := msg.Header.ProxyDeviceId // Request?
 	if targetDevice == "" && msg.Header.ToDeviceId != "" {
 		// Typical response
@@ -390,6 +390,7 @@
 	return nil, olterrors.ErrNotImplemented
 }
 
+//Get_ext_value retrieves a value on a particular ONU
 func (oo *OpenOLT) Get_ext_value(deviceID string, device *voltha.Device, valueparam voltha.ValueType_Type) (*voltha.ReturnValues, error) {
 	var err error
 	resp := new(voltha.ReturnValues)
diff --git a/internal/pkg/core/statsmanager.go b/internal/pkg/core/statsmanager.go
index 3545b7d..a71c435 100755
--- a/internal/pkg/core/statsmanager.go
+++ b/internal/pkg/core/statsmanager.go
@@ -385,9 +385,8 @@
 
 // PortStatisticsIndication handles the port statistics indication
 func (StatMgr *OpenOltStatisticsMgr) PortStatisticsIndication(PortStats *openolt.PortStatistics, NumPonPorts uint32) {
-	logger.Debugf("port-stats-collected %v", PortStats)
 	StatMgr.PortsStatisticsKpis(PortStats, NumPonPorts)
-	logger.Infow("Received port stats indication", log.Fields{"PortStats": PortStats})
+	logger.Debugw("Received port stats indication", log.Fields{"PortStats": PortStats})
 	// TODO send stats to core topic to the voltha kafka or a different kafka ?
 }
 
diff --git a/pkg/mocks/mockOpenOltClient.go b/pkg/mocks/mockOpenOltClient.go
index 652f959..13f93ad 100644
--- a/pkg/mocks/mockOpenOltClient.go
+++ b/pkg/mocks/mockOpenOltClient.go
@@ -223,6 +223,11 @@
 	return nil
 }
 
+// GetExtValue mocks the GetExtValue function of Openoltclient.
+func (ooc *MockOpenoltClient) GetExtValue(ctx context.Context, in *openolt.ValueParam, opts ...grpc.CallOption) (*openolt.ReturnValues, error) {
+	return &openolt.ReturnValues{}, nil
+}
+
 // PerformGroupOperation mocks the PerformGroupOperation function of Openoltclient.
 func (ooc *MockOpenoltClient) PerformGroupOperation(ctx context.Context, in *openolt.Group, opts ...grpc.CallOption) (*openolt.Empty, error) {
 	return &openolt.Empty{}, nil
