diff --git a/dap_chain_net_srv.c b/dap_chain_net_srv.c
index b3f65d4d0a1fe5e3cc7a5977433faaabc9a2c0cd..117c511d285f5a64c3ec1a75c243ae08cab2d9b4 100755
--- a/dap_chain_net_srv.c
+++ b/dap_chain_net_srv.c
@@ -31,63 +31,14 @@
 static size_t m_uid_count;
 static dap_chain_net_srv_uid_t * m_uid;
 
-/**
- * @brief dap_chain_net_srv_init
- * @return
- */
-int dap_chain_net_srv_init()
-{
-    m_uid = NULL;
-    m_uid_count = 0;
-
-    return 0;
-}
-
-/**
- * @brief dap_chain_net_srv_deinit
- */
-void dap_chain_net_srv_deinit()
-{
-
-}
-
-/**
- * @brief dap_chain_net_srv_add
- * @param a_srv
- */
-void dap_chain_net_srv_add(dap_chain_net_srv_t * a_srv)
-{
-
-}
+typedef struct service_list {
+    dap_chain_net_srv_uid_t uid;
+    dap_chain_net_srv_t * srv;
+    UT_hash_handle hh;
+} service_list_t;
 
-/**
- * @brief dap_chain_net_srv_get
- * @param a_uid
- * @return
- */
-dap_chain_net_srv_t * dap_chain_net_srv_get(dap_chain_net_srv_uid_t a_uid)
-{
-
-}
-
-/**
- * @brief dap_chain_net_srv_count
- * @return
- */
-<<<<<<< HEAD
-const size_t dap_chain_net_srv_count()
-=======
- size_t dap_chain_net_srv_count(void)
->>>>>>> bugfix-12345
-{
-
-}
-
-/**
- * @brief dap_chain_net_srv_list
- * @return
- */
-const dap_chain_net_srv_uid_t * dap_chain_net_srv_list()
-{
+// list of active services
+static service_list_t *s_srv_list = NULL;
+// for separate access to s_srv_list
+static pthread_mutex_t s_srv_list_mutex = PTHREAD_MUTEX_INITIALIZER;
 
-}
diff --git a/dap_chain_net_srv.h b/dap_chain_net_srv.h
index 6c48b3d2221b7bd00689e081e72b911e42f7c4cc..566250415be7ff32e06cf45f165e7679f616e595 100755
--- a/dap_chain_net_srv.h
+++ b/dap_chain_net_srv.h
@@ -66,19 +66,13 @@ typedef struct dap_chain_net_srv_abstract
     char decription[128];
 } DAP_ALIGN_PACKED dap_chain_net_srv_abstract_t;
 
-int dap_chain_net_srv_init();
-void dap_chain_net_srv_deinit();
+int dap_chain_net_srv_init(void);
+void dap_chain_net_srv_deinit(void);
 
 void dap_chain_net_srv_add(dap_chain_net_srv_t * a_srv);
-<<<<<<< HEAD
-dap_chain_net_srv_t * dap_chain_net_srv_get(dap_chain_net_srv_uid_t a_uid);
-const size_t dap_chain_net_srv_count();
-const dap_chain_net_srv_uid_t * dap_chain_net_srv_list();
-=======
 void dap_chain_net_srv_del(dap_chain_net_srv_t * a_srv);
 void dap_chain_net_srv_del_all(void);
 dap_chain_net_srv_t * dap_chain_net_srv_get(dap_chain_net_srv_uid_t *a_uid);
 size_t dap_chain_net_srv_count(void);
 const dap_chain_net_srv_uid_t * dap_chain_net_srv_list(void);
->>>>>>> bugfix-12345