diff --git a/NetlinkHandler.cpp b/NetlinkHandler.cpp
index 0632293..800c86c 100644
--- a/NetlinkHandler.cpp
+++ b/NetlinkHandler.cpp
@@ -28,9 +28,8 @@
 #include "NetlinkManager.h"
 #include "ResponseCode.h"
 
-NetlinkHandler::NetlinkHandler(NetlinkManager *nm, int listenerSocket,
-                               int format) :
-                        NetlinkListener(listenerSocket, format) {
+NetlinkHandler::NetlinkHandler(NetlinkManager *nm, int listenerSocket) :
+                NetlinkListener(listenerSocket) {
     mNm = nm;
 }
 
@@ -51,22 +50,18 @@
         LOGW("No subsystem found in netlink event");
         return;
     }
-
     if (!strcmp(subsys, "net")) {
         int action = evt->getAction();
-        const char *iface = evt->findParam("INTERFACE");
-
         if (action == evt->NlActionAdd) {
+            const char *iface = evt->findParam("INTERFACE");
             notifyInterfaceAdded(iface);
         } else if (action == evt->NlActionRemove) {
+            const char *iface = evt->findParam("INTERFACE");
             notifyInterfaceRemoved(iface);
         } else if (action == evt->NlActionChange) {
             evt->dump();
+            const char *iface = evt->findParam("INTERFACE");
             notifyInterfaceChanged("nana", true);
-        } else if (action == evt->NlActionLinkUp) {
-            notifyInterfaceLinkChanged(iface, true);
-        } else if (action == evt->NlActionLinkDown) {
-            notifyInterfaceLinkChanged(iface, false);
         }
     }
 }
@@ -89,17 +84,7 @@
 
 void NetlinkHandler::notifyInterfaceChanged(const char *name, bool isUp) {
     char msg[255];
-    snprintf(msg, sizeof(msg), "Iface changed %s %s", name,
-             (isUp ? "up" : "down"));
-
-    mNm->getBroadcaster()->sendBroadcast(ResponseCode::InterfaceChange,
-            msg, false);
-}
-
-void NetlinkHandler::notifyInterfaceLinkChanged(const char *name, bool isUp) {
-    char msg[255];
-    snprintf(msg, sizeof(msg), "Iface linkstatus %s %s", name,
-             (isUp ? "up" : "down"));
+    snprintf(msg, sizeof(msg), "Iface is %s %s", (isUp ? "up" : "down"), name);
 
     mNm->getBroadcaster()->sendBroadcast(ResponseCode::InterfaceChange,
             msg, false);
