diff --git a/omci_common.go b/omci_common.go
index 55c3b02..c878780 100644
--- a/omci_common.go
+++ b/omci_common.go
@@ -60,7 +60,7 @@
 			"IntfId": key.IntfId,
 			"OnuId": key.OnuId,
 			"class": class,
-		}).Warnf("Unimplemeted GetAttributes for ME Class: %v " +
+		}).Tracef("Unimplemeted GetAttributes for ME Class: %v " +
 		    "Filling with zero value for the requested attributes", class)
 		AttributesMask := getAttributeMask(content)
 		pkt[8] = 0x00 // Command Processed Successfully
diff --git a/omci_defs.go b/omci_defs.go
index dfa0f52..44347ef 100644
--- a/omci_defs.go
+++ b/omci_defs.go
@@ -23,6 +23,31 @@
 	log "github.com/sirupsen/logrus"
 )
 
+// OMCI Sim definitions
+
+type ChMessageType int
+
+const (
+	GemPortAdded ChMessageType = iota
+)
+
+func (m ChMessageType) String() string {
+	names := [...]string{
+		"GemPortAdded",
+	}
+	return names[m]
+}
+
+type OmciChMessageData struct {
+	IntfId 	uint32
+	OnuId   uint32
+}
+
+type OmciChMessage struct {
+	Type ChMessageType
+	Data OmciChMessageData
+}
+
 //
 // OMCI definitions
 //
@@ -79,7 +104,18 @@
 	case SetTable:
 		return "SetTable"
 	default:
-		log.Warnf("Cant't convert state %v to string", t)
+		// FIXME
+		// msg="Cant't convert state 68 to string"
+		// msg="Cant't convert state 72 to string"
+		// msg="Cant't convert state 73 to string"
+		// msg="Cant't convert state 75 to string"
+		// msg="Cant't convert state 76 to string"
+		// msg="Cant't convert state 77 to string"
+		// msg="Cant't convert state 78 to string"
+		// msg="Cant't convert state 79 to string"
+		// msg="Cant't convert state 88 to string"
+
+		log.Tracef("Cant't convert OmciMsgType %v to string", t)
 		return string(t)
 	}
 }
@@ -112,6 +148,26 @@
 	SetTable              OmciMsgType = 29 // Defined in Extended Message Set Only
 )
 
+
+// OMCI Managed Entity Class
+type OmciClass uint16
+
+func (c OmciClass) PrettyPrint() string {
+	switch c {
+	case EthernetPMHistoryData:
+		return "EthernetPMHistoryData"
+	case ONUG:
+		return "ONUG"
+	case ANIG:
+		return "ANIG"
+	case GEMPortNetworkCTP:
+		return "GEMPortNetworkCTP"
+	default:
+		log.Tracef("Cant't convert OmciClass %v to string", c)
+		return string(c)
+	}
+}
+
 const (
 	// Managed Entity Class values
 	EthernetPMHistoryData OmciClass = 24
@@ -120,9 +176,6 @@
 	GEMPortNetworkCTP     OmciClass = 268
 )
 
-// OMCI Managed Entity Class
-type OmciClass uint16
-
 // OMCI Message Identifier
 type OmciMessageIdentifier struct {
 	Class    OmciClass
diff --git a/omci_handlers.go b/omci_handlers.go
index ec7f712..c766c1a 100644
--- a/omci_handlers.go
+++ b/omci_handlers.go
@@ -421,6 +421,13 @@
 			}).Tracef("Gem Port Id %d", key, onuOmciState)
 			// FIXME
 			OnuOmciStateMap[key].state = DONE
+			omciCh <- OmciChMessage{
+				Type: GemPortAdded,
+				Data: OmciChMessageData{
+					OnuId: key.OnuId,
+					IntfId: key.IntfId,
+				},
+			}
 		}
 	}
 
diff --git a/omci_sim.go b/omci_sim.go
index 5980db1..6cc0708 100644
--- a/omci_sim.go
+++ b/omci_sim.go
@@ -21,6 +21,12 @@
 	log "github.com/sirupsen/logrus"
 )
 
+var omciCh = make(chan OmciChMessage)
+
+func GetChannel() chan OmciChMessage {
+	return omciCh
+}
+
 func OmciSim(intfId uint32, onuId uint32, request []byte) ([]byte, error) {
 	var resp []byte
 
@@ -42,7 +48,7 @@
 		"MeInstance": instance,
 		//"Conent": content,
 		"omciMsg": fmt.Sprintf("%x", content),
-	}).Debugf("Processing OMCI pakcet")
+	}).Tracef("Processing OMCI pakcet")
 
 	key := OnuKey{intfId, onuId}
 	if _, ok := OnuOmciStateMap[key]; !ok {
@@ -102,7 +108,7 @@
 		"OnuId": onuId,
 		"msgType": msgType.PrettyPrint(),
 		"omciMsg": fmt.Sprintf("%x", resp),
-	}).Debugf("OMCI-SIM Response")
+	}).Tracef("OMCI-SIM Response")
 
 	return resp, nil
 }
\ No newline at end of file
