diff --git a/internal/pkg/mib/mib_sync.go b/internal/pkg/mib/mib_sync.go
index 13f4047..9efc65d 100755
--- a/internal/pkg/mib/mib_sync.go
+++ b/internal/pkg/mib/mib_sync.go
@@ -751,9 +751,9 @@
 		if meName == devdb.CUnknownItuG988ManagedEntity || meName == devdb.CUnknownVendorSpecificManagedEntity {
 			logger.Debugw(ctx, "MibUploadNextResponse contains unknown ME", log.Fields{"device-id": oo.deviceID,
 				"Me-Name": devdb.UnknownMeOrAttribName(meName), "Me-ClassId": meClassID, "Me-InstId": meEntityID,
-				"unknown mask": msgObj.ReportedME.GetAttributeMask(), "unknown attributes": msgObj.BaseLayer.Payload})
+				"unknown mask": msgObj.ReportedME.GetAttributeMask(), "unknown attributes": msgObj.Payload})
 			oo.pOnuDB.PutUnknownMeOrAttrib(ctx, devdb.UnknownMeOrAttribName(meName), meClassID, meEntityID,
-				msgObj.ReportedME.GetAttributeMask(), msgObj.BaseLayer.Payload[devdb.CStartUnknownMeAttribsInBaseLayerPayload:])
+				msgObj.ReportedME.GetAttributeMask(), msgObj.Payload[devdb.CStartUnknownMeAttribsInBaseLayerPayload:])
 		} else {
 			//with relaxed decoding set in the OMCI-LIB we have the chance to detect if there are some unknown attributes appended which we cannot decode
 			if unknownAttrLayer := (*msg.OmciPacket).Layer(omci.LayerTypeUnknownAttributes); unknownAttrLayer != nil {
@@ -1159,7 +1159,8 @@
 
 func (oo *OnuDeviceEntry) handleOmciGetResponseOnuG(ctx context.Context, meAttributes me.AttributeValueMap) error {
 	currentState := oo.PMibUploadFsm.PFsm.Current()
-	if currentState == UlStGettingVendorAndSerial {
+	switch currentState {
+	case UlStGettingVendorAndSerial:
 		if onuGVendorID, ok := meAttributes[me.OnuG_VendorId]; ok {
 			vendorID := cmn.TrimStringFromMeOctet(onuGVendorID)
 			if vendorID == "" {
@@ -1210,7 +1211,7 @@
 		// trigger retrieval of Version
 		_ = oo.PMibUploadFsm.PFsm.Event(UlEvGetVersion)
 		return nil
-	} else if currentState == UlStGettingVersion {
+	case UlStGettingVersion:
 		if onuGVersion, ok := meAttributes[me.OnuG_Version]; ok {
 			version := cmn.TrimStringFromMeOctet(onuGVersion)
 			if version == "" {
@@ -1237,7 +1238,7 @@
 		// trigger retrieval of EquipmentId and OMCC version
 		_ = oo.PMibUploadFsm.PFsm.Event(UlEvGetEquipIDAndOmcc)
 		return nil
-	} else {
+	default:
 		logger.Errorw(ctx, "MibSync FSM - wrong state OnuG response processing - handling of MibSyncChan stopped!",
 			log.Fields{"currentState": currentState, "device-id": oo.deviceID})
 		_ = oo.PMibUploadFsm.PFsm.Event(UlEvStop)
