diff --git a/mdmngr.c b/mdmngr.c
index 2a746195198646c4c11d747a8b47d809a8f7cf2c..b3275151492c226953d2dc62e0c38bf9812adea2 100644
--- a/mdmngr.c
+++ b/mdmngr.c
@@ -14,7 +14,7 @@
 
 #include "mdmngr.h"
 
-//netlink..
+//netlink related libraries..
 #include <stdio.h>
 #include <stdlib.h>
 #include <time.h>
@@ -847,7 +847,7 @@ out:
 	return ret;
 }
 
-int nl_receive_messages()
+static int nl_receive_messages()
 {
 	int ret;
 
@@ -872,24 +872,28 @@ fail_cb:
 	return ret;
 }
 
-
-int main(int argc, char **argv)
+int nl_event_listener()
 {
 	int ret;
 
 	ret = nl_init();
 	if (ret != NLE_SUCCESS) {
 		printf("Error: %s, fail to initialize netlink\n", nl_geterror(ret));
-		exit(1);
+		goto out;
 	}
 
 	ret = nl_receive_messages();
 	if (ret < 0) {
 		printf("Error: %s, fail to receive nl messages\n", nl_geterror(ret));
-		exit(1);
+		goto out;
 	}
 
-/*
+out:
+	return ret;
+}
+
+int main(int argc, char **argv)
+{
 	int rv;
 
 	rv = parse_args(argc, argv);
@@ -915,6 +919,4 @@ int main(int argc, char **argv)
 fail:
 	return -1;
 
-
-*/
 }