diff --git a/io/dap_events_socket.c b/io/dap_events_socket.c
index 3d80658bb930489b0b09ee2b0e5b721a4aa65340..08e5422cc3bff0e23b0e82636fe3cc83593c9e34 100644
--- a/io/dap_events_socket.c
+++ b/io/dap_events_socket.c
@@ -1612,9 +1612,7 @@ void dap_events_socket_delete_unsafe( dap_events_socket_t * a_esocket , bool a_p
     if (!a_preserve_inheritor )
         DAP_DEL_Z(a_esocket->_inheritor);
 
-    DAP_DEL_Z(a_esocket->_pvt);
-    DAP_DEL_Z(a_esocket->buf_in);
-    DAP_DEL_Z(a_esocket->buf_out);
+    DAP_DEL_MULTY(a_esocket->_pvt, a_esocket->buf_in, a_esocket->buf_out);
 
 #ifdef   DAP_SYS_DEBUG
     atomic_fetch_add(&s_memstat[MEMSTAT$K_BUF_OUT].free_nr, 1);
diff --git a/io/dap_server.c b/io/dap_server.c
index b0eff4685eb4b2e46d7c09fb067a4b775ac5184d..c1883bc9d8be1b8e135bbf2fd6ac4cae16d75cbc 100644
--- a/io/dap_server.c
+++ b/io/dap_server.c
@@ -271,11 +271,8 @@ dap_server_t *dap_server_new(char **a_addrs, uint16_t a_count, dap_server_type_t
 // sanity check
     dap_return_val_if_pass(!a_addrs || !a_count, NULL);
 // memory alloc
-    dap_server_t *l_server =  DAP_NEW_Z(dap_server_t);
-    if (!l_server) {
-        log_it(L_CRITICAL, "Memory allocation error");
-        return NULL;
-    }
+    dap_server_t *l_server =  NULL;
+    DAP_NEW_Z_RET_VAL(l_server, dap_server_t, NULL, NULL);
 // preparing
     //create callback
     dap_events_socket_callbacks_t l_callbacks = {0};
diff --git a/net/server/notify_server/src/dap_notify_srv.c b/net/server/notify_server/src/dap_notify_srv.c
index 2672787477f0ac60568e5d0ad96f3506f2583f95..da66363a2af92fe2b9a2cbc66b6e1a07aa9bc86c 100644
--- a/net/server/notify_server/src/dap_notify_srv.c
+++ b/net/server/notify_server/src/dap_notify_srv.c
@@ -57,31 +57,26 @@ static void s_notify_server_callback_delete(dap_events_socket_t * a_es, void * a
  */
 int dap_notify_server_init()
 {
-    const char *l_path = dap_config_get_item_str_default(g_config, "notify_server", "listen_path", NULL);
-    const char *l_path_mode = dap_config_get_item_str_default(g_config, "notify_server", "listen_path_mode","0600");
-
-    uint16_t l_notify_socket_count = 0;
-    char **l_notify_socket_address = dap_config_get_array_str(g_config, "notify_server", "listen_address", &l_notify_socket_count);
-
-    if(l_path){
-        char *l_path_and_mode = DAP_NEW_Z_SIZE(char, MAX_PATH + 5);
-        dap_snprintf(l_path_and_mode, MAX_PATH + 4, "%s%c%s", l_path, l_path_mode ? ':' : 0, l_path_mode ? l_path_mode : "\0");
-        s_notify_server = dap_server_new(&l_path_and_mode, 1, DAP_SERVER_LOCAL, NULL);
-        DAP_DELETE(l_path_and_mode);
-    } else if (l_notify_socket_address && l_notify_socket_count) {
-        s_notify_server = dap_server_new(l_notify_socket_address, l_notify_socket_count, DAP_SERVER_TCP, NULL);
+    uint16_t l_notify_addrs_count = 0;
+    char **l_notify_addrs = dap_config_get_array_str(g_config, "notify_server", "listen_path", &l_notify_addrs_count);
+    if( l_notify_addrs ) {
+        s_notify_server = dap_server_new(l_notify_addrs, l_notify_addrs_count, DAP_SERVER_LOCAL, NULL);
+    } else if (l_notify_addrs = dap_config_get_array_str(g_config, "notify_server", "listen_address", &l_notify_addrs_count)) {
+        s_notify_server = dap_server_new(l_notify_addrs, l_notify_addrs_count, DAP_SERVER_TCP, NULL);
     } else {
         log_it(L_INFO,"Notify server is not configured, nothing to init but thats okay");
         return 0;
     }
 
-    if (!s_notify_server)
+    if (!s_notify_server) {
+        log_it(L_ERROR,"Notify server not initalized, check config");
         return -1;
+    }
     s_notify_server->client_callbacks.new_callback = s_notify_server_callback_new;
     s_notify_server->client_callbacks.delete_callback = s_notify_server_callback_delete;
     s_notify_server_queue = dap_events_socket_create_type_queue_ptr_mt(dap_events_worker_get_auto(),s_notify_server_callback_queue);
     uint32_t l_workers_count = dap_events_thread_get_count();
-    s_notify_server_queue_inter = DAP_NEW_Z_SIZE(dap_events_socket_t*,sizeof (dap_events_socket_t*)*l_workers_count );
+    DAP_NEW_Z_COUNT_RET_VAL(s_notify_server_queue_inter, dap_events_socket_t *, l_workers_count, -2, NULL);
     for(uint32_t i = 0; i < l_workers_count; i++){
         s_notify_server_queue_inter[i] = dap_events_socket_queue_ptr_create_input(s_notify_server_queue);
         dap_events_socket_assign_on_worker_mt(s_notify_server_queue_inter[i], dap_events_worker_get(i));