diff --git a/internal/pkg/adaptercore/device_handler.go b/internal/pkg/adaptercore/device_handler.go
index 3b58b25..f44826e 100644
--- a/internal/pkg/adaptercore/device_handler.go
+++ b/internal/pkg/adaptercore/device_handler.go
@@ -19,11 +19,11 @@
 	"context"
 	"fmt"
 	"github.com/gogo/protobuf/proto"
-	com "github.com/opencord/voltha-lib-go/v2/pkg/adapters/common"
-	"github.com/opencord/voltha-lib-go/v2/pkg/log"
-	ic "github.com/opencord/voltha-protos/v2/go/inter_container"
-	of "github.com/opencord/voltha-protos/v2/go/openflow_13"
-	"github.com/opencord/voltha-protos/v2/go/voltha"
+	com "github.com/opencord/voltha-lib-go/v3/pkg/adapters/common"
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
+	ic "github.com/opencord/voltha-protos/v3/go/inter_container"
+	of "github.com/opencord/voltha-protos/v3/go/openflow_13"
+	"github.com/opencord/voltha-protos/v3/go/voltha"
 	"strconv"
 	"strings"
 	"sync"
diff --git a/internal/pkg/adaptercore/simulated_onu.go b/internal/pkg/adaptercore/simulated_onu.go
index 831e09a..9db4930 100644
--- a/internal/pkg/adaptercore/simulated_onu.go
+++ b/internal/pkg/adaptercore/simulated_onu.go
@@ -19,24 +19,24 @@
 	"context"
 	"errors"
 	"fmt"
-	com "github.com/opencord/voltha-lib-go/v2/pkg/adapters/common"
-	"github.com/opencord/voltha-lib-go/v2/pkg/kafka"
-	"github.com/opencord/voltha-lib-go/v2/pkg/log"
-	ic "github.com/opencord/voltha-protos/v2/go/inter_container"
-	"github.com/opencord/voltha-protos/v2/go/openflow_13"
-	"github.com/opencord/voltha-protos/v2/go/voltha"
+	com "github.com/opencord/voltha-lib-go/v3/pkg/adapters/common"
+	"github.com/opencord/voltha-lib-go/v3/pkg/kafka"
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
+	ic "github.com/opencord/voltha-protos/v3/go/inter_container"
+	"github.com/opencord/voltha-protos/v3/go/openflow_13"
+	"github.com/opencord/voltha-protos/v3/go/voltha"
 	"sync"
 )
 
 type SimulatedONU struct {
 	deviceHandlers        map[string]*DeviceHandler
 	coreProxy             *com.CoreProxy
-	kafkaICProxy          *kafka.InterContainerProxy
+	kafkaICProxy          kafka.InterContainerProxy
 	exitChannel           chan int
 	lockDeviceHandlersMap sync.RWMutex
 }
 
-func NewSimulatedONU(ctx context.Context, kafkaICProxy *kafka.InterContainerProxy, coreProxy *com.CoreProxy) *SimulatedONU {
+func NewSimulatedONU(ctx context.Context, kafkaICProxy kafka.InterContainerProxy, coreProxy *com.CoreProxy) *SimulatedONU {
 	var simulatedOLT SimulatedONU
 	simulatedOLT.exitChannel = make(chan int, 1)
 	simulatedOLT.deviceHandlers = make(map[string]*DeviceHandler)
@@ -264,14 +264,6 @@
 	return errors.New("UnImplemented")
 }
 
-func (so *SimulatedONU) Suppress_alarm(filter *voltha.AlarmFilter) error {
-	return errors.New("UnImplemented")
-}
-
-func (so *SimulatedONU) Unsuppress_alarm(filter *voltha.AlarmFilter) error {
-	return errors.New("UnImplemented")
-}
-
 func (so *SimulatedONU) Download_image(device *voltha.Device, request *voltha.ImageDownload) (*voltha.ImageDownload, error) {
 	return nil, errors.New("UnImplemented")
 }
@@ -291,3 +283,27 @@
 func (so *SimulatedONU) Revert_image_update(device *voltha.Device, request *voltha.ImageDownload) (*voltha.ImageDownload, error) {
 	return nil, errors.New("UnImplemented")
 }
+
+func (oo *SimulatedONU) Enable_port(deviceID string, port *voltha.Port) error {
+	return errors.New("UnImplemented")
+}
+
+func (oo *SimulatedONU) Disable_port(deviceID string, port *voltha.Port) error {
+	return errors.New("UnImplemented")
+}
+
+func (oo *SimulatedONU) Child_device_lost(deviceID string, pPortNo uint32, onuID uint32) error {
+	return errors.New("UnImplemented")
+}
+
+func (oo *SimulatedONU) Start_omci_test(device *voltha.Device, request *voltha.OmciTestRequest) (*voltha.TestResponse, error) {
+	return nil, errors.New("UnImplemented")
+}
+
+func (oo *SimulatedONU) Suppress_event(filter *voltha.EventFilter) error {
+	return errors.New("UnImplemented")
+}
+
+func (oo *SimulatedONU) Unsuppress_event(filter *voltha.EventFilter) error {
+	return errors.New("UnImplemented")
+}
\ No newline at end of file
diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go
index 2277101..f2b2cdd 100644
--- a/internal/pkg/config/config.go
+++ b/internal/pkg/config/config.go
@@ -18,7 +18,7 @@
 import (
 	"flag"
 	"fmt"
-	"github.com/opencord/voltha-lib-go/v2/pkg/log"
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
 	"os"
 )
 
@@ -34,7 +34,7 @@
 	default_KVStoreTimeout   = 5 //in seconds
 	default_KVStoreHost      = "127.0.0.1"
 	default_KVStorePort      = 2379 // Consul = 8500; Etcd = 2379
-	default_LogLevel         = 0
+	default_LogLevel         = "WARN"
 	default_Banner           = false
 	default_Topic            = "simulated_onu"
 	default_CoreTopic        = "rwcore"
@@ -57,7 +57,7 @@
 	KVStorePort      int
 	Topic            string
 	CoreTopic        string
-	LogLevel         int
+	LogLevel         string
 	Banner           bool
 	ProbeHost        string
 	ProbePort        int
@@ -127,7 +127,7 @@
 	flag.IntVar(&(so.KVStorePort), "kv_store_port", default_KVStorePort, help)
 
 	help = fmt.Sprintf("Log level")
-	flag.IntVar(&(so.LogLevel), "log_level", default_LogLevel, help)
+	flag.StringVar(&(so.LogLevel), "log_level", default_LogLevel, help)
 
 	help = fmt.Sprintf("Show startup banner log lines")
 	flag.BoolVar(&so.Banner, "banner", default_Banner, help)
