diff --git a/global-db/dap_global_db_driver_sqlite.c b/global-db/dap_global_db_driver_sqlite.c
index 1a53bbec787caefdfcf7f053438c8718953e3324..65fbda0732bcac27e93a0c20dfc082176c086173 100644
--- a/global-db/dap_global_db_driver_sqlite.c
+++ b/global-db/dap_global_db_driver_sqlite.c
@@ -813,8 +813,8 @@ clean_and_ret:
 static dap_list_t *s_db_sqlite_get_groups_by_mask(const char *a_group_mask)
 {
 // sanity check
-    conn_list_item_t *l_conn = s_db_sqlite_get_connection(false);
-    dap_return_val_if_pass(!a_group_mask || !l_conn, NULL);
+    conn_list_item_t *l_conn = NULL;
+    dap_return_val_if_pass(!a_group_mask || !(l_conn = s_db_sqlite_get_connection(false)), NULL);
 // preparing
     const char *l_error_msg = "get groups";
     dap_list_t* l_ret = NULL;
diff --git a/global-db/dap_global_db_pkt.c b/global-db/dap_global_db_pkt.c
index 5565c4a9c464c12c0926a004000015e3040443b6..ef24b1ca95524338c664daeb4ebba933a57ccbd0 100644
--- a/global-db/dap_global_db_pkt.c
+++ b/global-db/dap_global_db_pkt.c
@@ -184,13 +184,7 @@ static byte_t *s_fill_one_store_obj(dap_global_db_pkt_t *a_pkt, dap_store_obj_t
     l_data_ptr += a_pkt->key_len;
 
     if (a_pkt->value_len) {
-        a_obj->value = DAP_DUP_SIZE(l_data_ptr, a_pkt->value_len);
-        if (!a_obj->value) {
-            log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-            DAP_DELETE(a_obj->group);
-            DAP_DELETE(a_obj->key);
-            return NULL;
-        }
+        a_obj->value = DAP_DUP_SIZE_RET_VAL_IF_FAIL(l_data_ptr, a_pkt->value_len, NULL, a_obj->group, a_obj->key);
         l_data_ptr += a_pkt->value_len;
     }
 
@@ -205,14 +199,7 @@ static byte_t *s_fill_one_store_obj(dap_global_db_pkt_t *a_pkt, dap_store_obj_t
             DAP_DEL_Z(a_obj->value);
             return NULL;
         }
-        a_obj->sign = (dap_sign_t *)DAP_DUP_SIZE(l_sign, l_sign_size);
-        if (!a_obj->sign) {
-            log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-            DAP_DELETE(a_obj->group);
-            DAP_DELETE(a_obj->key);
-            DAP_DEL_Z(a_obj->value);
-            return NULL;
-        }
+        a_obj->sign = DAP_DUP_SIZE_RET_VAL_IF_FAIL(l_sign, l_sign_size, NULL, a_obj->group, a_obj->key, a_obj->value);
     }
 
     if (a_addr)
diff --git a/io/dap_net.c b/io/dap_net.c
index 6d865590592556d63fa22654eb10fc6f0e9284d0..a26f1695b8cef426b477a5824509dad1b0e8776f 100644
--- a/io/dap_net.c
+++ b/io/dap_net.c
@@ -33,7 +33,7 @@
 int dap_net_resolve_host(const char *a_host, const char *a_port, bool a_numeric_only, struct sockaddr_storage *a_addr_out, int *a_family)
 {
     dap_return_val_if_fail_err(a_addr_out, -1, "Required storage is not provided");
-    memset(a_addr_out, 0, sizeof(*a_addr_out));
+    *a_addr_out = (struct sockaddr_storage){ };
 
     
     int l_ret = 0;
diff --git a/io/dap_worker.c b/io/dap_worker.c
index 2024282788669f16a13cdb4f23faaac23f3fd6c6..a6e1659e1aee340ef788cb8d85d1c6cba63c38aa 100644
--- a/io/dap_worker.c
+++ b/io/dap_worker.c
@@ -449,8 +449,11 @@ static bool s_socket_all_check_activity( void * a_arg)
 void dap_worker_add_events_socket(dap_worker_t *a_worker, dap_events_socket_t *a_events_socket)
 {
     dap_return_if_fail(a_worker && a_events_socket);
-#ifdef DAP_EVENTS_CAPS_IOCP
     int l_ret = 0;
+    const char *l_type_str = dap_events_socket_get_type_str(a_events_socket);
+    SOCKET l_s = a_events_socket->socket;
+    dap_events_socket_uuid_t l_uuid = a_events_socket->uuid;
+#ifdef DAP_EVENTS_CAPS_IOCP
     a_events_socket->worker = a_worker;
     if ( dap_worker_get_current() == a_worker )
         s_es_assign_to_context(a_worker->context, &(OVERLAPPED){ .Pointer = a_events_socket });
@@ -462,30 +465,20 @@ void dap_worker_add_events_socket(dap_worker_t *a_worker, dap_events_socket_t *a
         l_ret = PostQueuedCompletionStatus(a_worker->context->iocp, 0, (ULONG_PTR)s_es_assign_to_context, (OVERLAPPED*)ol)
             ? 0 : ( DAP_DELETE(ol), GetLastError() );
     }
-    if (l_ret)
-        log_it(L_ERROR, "Can't assign esocket to worker, error %d", l_ret);
-    else
-        debug_if(g_debug_reactor, L_DEBUG,
-                 "Sent es "DAP_FORMAT_ESOCKET_UUID" \"%s\" [%s] to worker #%d",
-                 a_events_socket->uuid, dap_events_socket_get_type_str(a_events_socket),
-                 a_events_socket->socket == INVALID_SOCKET ? "" : dap_itoa(a_events_socket->socket),
-                 a_worker->id);
 #else
-    int l_ret = dap_worker_get_current() == a_worker
-            ? s_queue_es_add(a_worker->queue_es_new, a_events_socket)
-            : dap_events_socket_queue_ptr_send(a_worker->queue_es_new, a_events_socket);
-
+    l_ret = dap_worker_get_current() == a_worker
+        ? s_queue_es_add(a_worker->queue_es_new, a_events_socket)
+        : dap_events_socket_queue_ptr_send(a_worker->queue_es_new, a_events_socket);
+#endif
     if (l_ret)
-        log_it(L_ERROR, dap_worker_get_current() == a_worker
-               ? "Can't assign esocket to worker: \"%s\"(code %d)"
-               : "Can't send pointer in queue: \"%s\"(code %d)", dap_strerror(l_ret), l_ret);
+        log_it(L_ERROR, "Can't %s es \"%s\" [%s], uuid %"DAP_FORMAT_ESOCKET_UUID" to worker #%d, error %d: \"%s\"",
+               dap_worker_get_current() == a_worker ? "assign" : "send",
+               l_type_str, dap_itoa(l_s), l_uuid, a_worker->id, l_ret, dap_strerror(l_ret));
     else 
         debug_if(g_debug_reactor, L_DEBUG,
-               "Sent es %p \"%s\" [%s] to worker #%d",
-               a_events_socket, dap_events_socket_get_type_str(a_events_socket),
-               a_events_socket->socket == INVALID_SOCKET ? "" : dap_itoa(a_events_socket->socket),
-               a_worker->id);
-#endif
+               "%s es \"%s\" [%s], uuid %"DAP_FORMAT_ESOCKET_UUID" to worker #%d",
+               dap_worker_get_current() == a_worker ? "Assigned" : "Sent",
+               l_type_str, dap_itoa(l_s), l_uuid, a_worker->id);
 }
 
 #ifndef DAP_EVENTS_CAPS_IOCP
diff --git a/net/client/dap_client_pvt.c b/net/client/dap_client_pvt.c
index 4a830e06be7239668f2ec967bd591f1d8163879e..97a94e04767edae3c490cfcb17c1f5b35cf857c5 100644
--- a/net/client/dap_client_pvt.c
+++ b/net/client/dap_client_pvt.c
@@ -396,7 +396,7 @@ static void s_stage_status_after(dap_client_pvt_t *a_client_pvt)
                         break;
                     }
                     size_t l_data_size = a_client_pvt->session_key_open->pub_key_data_size;
-                    uint8_t *l_data = DAP_DUP_SIZE(a_client_pvt->session_key_open->pub_key_data, l_data_size);
+                    uint8_t *l_data = DAP_DUP_SIZE((uint8_t*)a_client_pvt->session_key_open->pub_key_data, l_data_size);
                     if (!l_data) {
                         a_client_pvt->stage_status = STAGE_STATUS_ERROR;
                         break;
@@ -429,8 +429,8 @@ static void s_stage_status_after(dap_client_pvt_t *a_client_pvt)
                     // bad request
                     if (l_res < 0)
                         a_client_pvt->stage_status = STAGE_STATUS_ERROR;
-                    DAP_DEL_Z(l_data);
-                    DAP_DEL_Z(l_data_str);
+                    DAP_DELETE(l_data);
+                    DAP_DELETE(l_data_str);
                 } break;
 
                 case STAGE_STREAM_CTL: {
diff --git a/net/server/http_server/dap_http_cache.c b/net/server/http_server/dap_http_cache.c
index 6275a0b46e05e529e5573acfd176d5146c62b731..dfe36e2dcdd3e5deb4ebc3406e75326f90ac7158 100644
--- a/net/server/http_server/dap_http_cache.c
+++ b/net/server/http_server/dap_http_cache.c
@@ -41,24 +41,12 @@ dap_http_cache_t * dap_http_cache_update(struct dap_http_url_proc * a_url_proc,
                                          dap_http_header_t * a_headers, const char * a_response_phrase, int a_respoonse_code,
                                          time_t a_ts_expire )
 {
-    dap_http_cache_t * l_ret = DAP_NEW_Z(dap_http_cache_t);
-    if (!l_ret) {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return NULL;
-    }
-    if(a_body_size){
-        l_ret->body = DAP_NEW_SIZE(byte_t,a_body_size);
-        if (!l_ret->body) {
-            log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-            DAP_DEL_Z(l_ret);
-            return NULL;
-        }
-        memcpy(l_ret->body,a_body,a_body_size);
+    dap_http_cache_t * l_ret = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_http_cache_t, NULL);
+    if (a_body_size) {
+        l_ret->body = DAP_DUP_SIZE_RET_VAL_IF_FAIL(a_body, a_body_size, NULL, l_ret);
         l_ret->body_size = a_body_size;
     }
     l_ret->headers =  dap_http_headers_dup( a_headers);
-
-
     l_ret->ts_expire = a_ts_expire;
     l_ret->url_proc = a_url_proc;
     if(a_response_phrase)
@@ -70,7 +58,6 @@ dap_http_cache_t * dap_http_cache_update(struct dap_http_url_proc * a_url_proc,
     if(l_hdr_date)
         dap_http_header_remove(&l_ret->headers,l_hdr_date);
 
-
     // Reset current cache for url_proc and replace with our own
     pthread_rwlock_wrlock(&a_url_proc->cache_rwlock);
     dap_http_cache_delete(a_url_proc->cache);
diff --git a/net/server/http_server/http_client/dap_http_client.c b/net/server/http_server/http_client/dap_http_client.c
index a8db7e472e094d99ef3848227a4841ef16d8de98..a0f330ae7b968108c5e77a5cdc479b21a5142950 100644
--- a/net/server/http_server/http_client/dap_http_client.c
+++ b/net/server/http_server/http_client/dap_http_client.c
@@ -534,7 +534,6 @@ void dap_http_client_read( dap_events_socket_t *a_esocket, void *a_arg )
  */
 void dap_http_client_write(dap_http_client_t *a_http_client)
 {
-    dap_http_header_t *hdr = a_http_client->out_headers;
     if ( a_http_client->proc ) {
         // We check out_headers because if they are - we send only cached headers and don't call headers_write_callback at all
         if (!a_http_client->out_headers) {
@@ -554,11 +553,11 @@ void dap_http_client_write(dap_http_client_t *a_http_client)
                     a_http_client->reply_status_code, a_http_client->reply_reason_phrase[0] ?
                     a_http_client->reply_reason_phrase : http_status_reason_phrase(a_http_client->reply_status_code) );
     /* Write HTTP headres */
-    char l_buf[128];
+    char l_buf[32];
     dap_time_to_str_rfc822( l_buf, sizeof(l_buf) - 1, time( NULL ) );
     dap_http_header_add( &a_http_client->out_headers, "Date", l_buf );
 
-    for ( hdr = a_http_client->out_headers; hdr; hdr = a_http_client->out_headers ) {
+    for ( dap_http_header_t *hdr = a_http_client->out_headers; hdr; hdr = a_http_client->out_headers ) {
         a_http_client->esocket->buf_out_size += snprintf((char *) a_http_client->esocket->buf_out + a_http_client->esocket->buf_out_size,
                                                             a_http_client->esocket->buf_out_size_max - a_http_client->esocket->buf_out_size,
                                                             "%s: %s" CRLF, hdr->name, hdr->value);
diff --git a/net/server/http_server/http_client/dap_http_header.c b/net/server/http_server/http_client/dap_http_header.c
index dfbcb6b6b97191c6d7a0f1a5095ae52769b17fe7..8977514c563a587df9451647255b1bc717dde5f1 100644
--- a/net/server/http_server/http_client/dap_http_header.c
+++ b/net/server/http_server/http_client/dap_http_header.c
@@ -201,11 +201,7 @@ dap_http_header_t *l_new_header;
  */
 inline dap_http_header_t *dap_http_header_add(dap_http_header_t **a_top, const char *a_name, const char *a_value)
 {
-    dap_http_header_t *l_new_header = DAP_NEW_Z(dap_http_header_t);
-    if (!l_new_header) {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return NULL;
-    }
+    dap_http_header_t *l_new_header = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_http_header_t, NULL);
 
     l_new_header->namesz = strnlen(a_name, DAP_HTTP$SZ_FIELD_NAME);
     memcpy(l_new_header->name, a_name, l_new_header->namesz);
@@ -285,17 +281,10 @@ dap_http_header_t * dap_http_headers_dup(dap_http_header_t * a_top)
 {
     dap_http_header_t *l_hdr = NULL, *l_ret = NULL;
 
-    DL_FOREACH(a_top,l_hdr){
-        dap_http_header_t * l_hdr_copy = DAP_NEW_Z(dap_http_header_t);
-        if (!l_hdr_copy) {
-            log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-            return l_ret;
-        }
-
+    DL_FOREACH(a_top, l_hdr) {
+        dap_http_header_t * l_hdr_copy = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_http_header_t, l_ret);
         memcpy(l_hdr_copy->name, l_hdr->name, l_hdr_copy->namesz = l_hdr->namesz);
         memcpy(l_hdr_copy->value, l_hdr->value, l_hdr_copy->valuesz = l_hdr->valuesz);
-
-
         DL_APPEND(l_ret, l_hdr_copy);
     }
 
diff --git a/net/server/json_rpc/rpc_core/src/dap_json_rpc_params.c b/net/server/json_rpc/rpc_core/src/dap_json_rpc_params.c
index 7af75a9aa230e4fad58b9026d47b70dd8e529119..65ceeaf436b54e7a73d9ff6d230d348b243ed351 100644
--- a/net/server/json_rpc/rpc_core/src/dap_json_rpc_params.c
+++ b/net/server/json_rpc/rpc_core/src/dap_json_rpc_params.c
@@ -18,63 +18,29 @@ dap_json_rpc_param_t* dap_json_rpc_create_param(void * data, dap_json_rpc_type_p
 
 dap_json_rpc_params_t* dap_json_rpc_params_create(void)
 {
-    dap_json_rpc_params_t *params = DAP_NEW(dap_json_rpc_params_t);
-
-    if (!params) {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return NULL;
-    }
-
-    params->length = 0;
-
+    dap_json_rpc_params_t *params = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_json_rpc_params_t, NULL);
     return params;
 }
 
 void dap_json_rpc_params_add_data(dap_json_rpc_params_t *a_params, const void *a_value,
                                   dap_json_rpc_type_param_t a_type)
 {
-    dap_json_rpc_param_t *new_param = DAP_NEW(dap_json_rpc_param_t);
-    if (!new_param) {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return;
-    }
-
+    dap_json_rpc_param_t *new_param = DAP_NEW_Z_RET_IF_FAIL(dap_json_rpc_param_t);
     new_param->type = a_type;
     size_t value_size;
 
     switch (a_type) {
         case TYPE_PARAM_STRING:
-            new_param->value_param = dap_strdup((char *)a_value);
+            new_param->value_param = dap_strdup((char*)a_value);
             break;
         case TYPE_PARAM_BOOLEAN:
-            value_size = sizeof(bool);
-            new_param->value_param = DAP_NEW(bool);
-            if (!new_param->value_param) {
-                log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-                DAP_DEL_Z(new_param);
-                return;
-            }
-            memcpy(new_param->value_param, a_value, value_size);
+            new_param->value_param = DAP_DUP((bool*)a_value);
             break;
         case TYPE_PARAM_INTEGER:
-            value_size = sizeof(int64_t);
-            new_param->value_param = DAP_NEW(int64_t);
-            if (!new_param->value_param) {
-                log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-                DAP_DEL_Z(new_param);
-                return;
-            }
-            memcpy(new_param->value_param, a_value, value_size);
+            new_param->value_param = DAP_DUP((int64_t*)a_value);
             break;
         case TYPE_PARAM_DOUBLE:
-            value_size = sizeof(double);
-            new_param->value_param = DAP_NEW(double);
-            if (!new_param->value_param) {
-                log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-                DAP_DEL_Z(new_param);
-                return;
-            }
-            memcpy(new_param->value_param, a_value, value_size);
+            new_param->value_param = DAP_DUP((double*)a_value);
             break;
         default:
             new_param->value_param = NULL;
@@ -85,25 +51,14 @@ void dap_json_rpc_params_add_data(dap_json_rpc_params_t *a_params, const void *a
 
 void dap_json_rpc_params_add_param(dap_json_rpc_params_t *a_params, dap_json_rpc_param_t *a_param)
 {
-    uint32_t l_len_new_params = a_params->length + 1;
-
-    dap_json_rpc_param_t **new_params = DAP_NEW_SIZE(dap_json_rpc_param_t*, l_len_new_params * sizeof(dap_json_rpc_param_t*));
-
-    if(a_params->length && a_params->params)
-       memcpy(new_params, a_params->params, sizeof(dap_json_rpc_param_t*) * a_params->length);
-
+    dap_json_rpc_param_t **new_params = DAP_REALLOC_COUNT_RET_IF_FAIL(a_params->params, a_params->length + 1);
     new_params[a_params->length] = a_param;
-
-    if (a_params->length != 0)
-        DAP_FREE(a_params->params);
-    a_params->params = new_params;
-    a_params->length++;
+    ++a_params->length;
 }
 
 void dap_json_rpc_param_remove(dap_json_rpc_param_t *param)
 {
-    DAP_DEL_Z(param->value_param);
-    DAP_DEL_Z(param);
+    DAP_DEL_MULTY(param->value_param, param);
 }
 
 void dap_json_rpc_params_remove_all(dap_json_rpc_params_t *a_params)
@@ -111,8 +66,7 @@ void dap_json_rpc_params_remove_all(dap_json_rpc_params_t *a_params)
     for (uint32_t i=0x0 ; i < dap_json_rpc_params_length(a_params); i++){
         dap_json_rpc_param_remove(a_params->params[i]);
     }
-    DAP_FREE(a_params->params);
-    DAP_FREE(a_params);
+    DAP_DEL_MULTY(a_params->params, a_params);
 }
 
 uint32_t dap_json_rpc_params_length(dap_json_rpc_params_t *a_params)
@@ -122,16 +76,12 @@ uint32_t dap_json_rpc_params_length(dap_json_rpc_params_t *a_params)
 
 void *dap_json_rpc_params_get(dap_json_rpc_params_t *a_params, uint32_t index)
 {
-    if (a_params->length > index)
-        return a_params->params[index]->value_param;
-    return NULL;
+    return a_params->length > index ? a_params->params[index]->value_param : NULL;
 }
 
 dap_json_rpc_type_param_t dap_json_rpc_params_get_type_param(dap_json_rpc_params_t *a_params, uint32_t index)
 {
-    if (a_params->length > index)
-        return a_params->params[index]->type;
-    return TYPE_PARAM_NULL;
+    return a_params->length > index ? a_params->params[index]->type : TYPE_PARAM_NULL;
 }
 
 dap_json_rpc_params_t * dap_json_rpc_params_create_from_array_list(json_object *a_array_list)
@@ -171,21 +121,16 @@ dap_json_rpc_params_t * dap_json_rpc_params_create_from_array_list(json_object *
                 dap_json_rpc_params_add_data(params, NULL, TYPE_PARAM_NULL);
         }
     }
-    return  params;
+    return params;
 }
 
 char *dap_json_rpc_params_get_string_json(dap_json_rpc_params_t * a_params)
 {
-    if (!a_params) {
-        log_it(L_CRITICAL, "Invalid input parameters");
-        return NULL;
-    }
+    dap_return_val_if_fail(a_params, NULL);
 
     json_object *jobj_array = json_object_new_array();
-    if (!jobj_array) {
-        log_it(L_CRITICAL, "Failed to create JSON array");
-        return NULL;
-    }
+    if (!jobj_array)
+        return log_it(L_CRITICAL, "Failed to create JSON array"), NULL;
 
     for (uint32_t i = 0; i < a_params->length; i++){
         json_object *jobj_tmp = NULL;
@@ -211,10 +156,9 @@ char *dap_json_rpc_params_get_string_json(dap_json_rpc_params_t * a_params)
                 json_object_put(jobj_array);
                 return NULL;
         }
-
         json_object_array_add(jobj_array, jobj_tmp);
     };
-    char *l_str = dap_strjoin(NULL, json_object_to_json_string(jobj_array), NULL);
+    char *l_str = dap_strdup( json_object_to_json_string(jobj_array) );
     json_object_put(jobj_array);
     return l_str;
 }
diff --git a/net/server/json_rpc/rpc_core/src/dap_json_rpc_request.c b/net/server/json_rpc/rpc_core/src/dap_json_rpc_request.c
index 39d1c320a64207209a3126b0a356a98720e71554..b7b4f95586ffa544cdcf8b5b3d67289f7d8635a4 100644
--- a/net/server/json_rpc/rpc_core/src/dap_json_rpc_request.c
+++ b/net/server/json_rpc/rpc_core/src/dap_json_rpc_request.c
@@ -28,12 +28,10 @@ enum ExecCmdRetCode {
 
 int dap_json_rpc_request_init(const char *a_url_service)
 {
-    if (s_url_service == NULL)
-    {
-        s_url_service = dap_strdup(a_url_service);
-        return 0;
-    }
-    return 1;
+    if (s_url_service)
+        return 1;
+    s_url_service = dap_strdup(a_url_service);
+    return 0;
 }
 
 static struct exec_cmd_request* s_exec_cmd_request_init(dap_client_pvt_t * a_client_pvt)
@@ -70,9 +68,7 @@ void s_exec_cmd_request_free(struct exec_cmd_request *a_exec_cmd_request)
     pthread_mutex_destroy(&a_exec_cmd_request->wait_mutex);
     pthread_cond_destroy(&a_exec_cmd_request->wait_cond);
 #endif
-    DAP_DELETE(a_exec_cmd_request->response);  // line 73
-    DAP_DELETE(a_exec_cmd_request);
-
+    DAP_DEL_MULTY(a_exec_cmd_request->response, a_exec_cmd_request);
 }
 
 static void s_exec_cmd_response_handler(void *a_response, size_t a_response_size, void *a_arg,
@@ -192,188 +188,108 @@ static int dap_chain_exec_cmd_list_wait(struct exec_cmd_request *a_exec_cmd_requ
 char * dap_json_rpc_enc_request(dap_client_pvt_t* a_client_internal, char * a_request_data_str, size_t a_request_data_size,
                                 char ** a_path, size_t * a_enc_request_size, char ** a_custom_header) {
 
-    const char * l_sub_url = dap_strdup_printf("channels=%s,enc_type=%d,enc_key_size=%zu,enc_headers=%d",
-                                                    a_client_internal->client->active_channels,
-                                                    a_client_internal->session_key_type,
-                                                    a_client_internal->session_key_block_size, 0);
-
-    bool is_query_enc = true;
-    const char * a_query = "type=tcp,maxconn=4";
-    size_t l_sub_url_size = l_sub_url ? strlen(l_sub_url) : 0;
-    size_t l_query_size = a_query ? strlen(a_query) : 0;
-
-    size_t l_sub_url_enc_size_max = l_sub_url_size ? (5 * l_sub_url_size + 16) : 0;
-    char *l_sub_url_enc = l_sub_url_size ? DAP_NEW_Z_SIZE(char, l_sub_url_enc_size_max + 1) : NULL;
-
-    size_t l_query_enc_size_max = (is_query_enc) ? (l_query_size * 5 + 16) : l_query_size;
-    char *l_query_enc =
-            (is_query_enc) ? (l_query_size ? DAP_NEW_Z_SIZE(char, l_query_enc_size_max + 1) : NULL) : (char*) a_query;
+    char s_query[] = "type=tcp,maxconn=4", s_suburl[128];
+    int l_query_len = sizeof(s_query) - 1,
+        l_suburl_len = snprintf(s_suburl, sizeof(s_suburl), "channels=%s,enc_type=%d,enc_key_size=%zu,enc_headers=%d",
+                                                            a_client_internal->client->active_channels, a_client_internal->session_key_type,
+                                                            a_client_internal->session_key_block_size, 0);
+    if (l_suburl_len >= (int)sizeof(s_suburl))
+        return NULL;
+    dap_enc_data_type_t l_enc_type = a_client_internal->uplink_protocol_version >= 21
+        ? DAP_ENC_DATA_TYPE_B64_URLSAFE : DAP_ENC_DATA_TYPE_B64;
+    int l_suburl_enc_len = dap_enc_code_out_size(a_client_internal->session_key, l_suburl_len, l_enc_type),
+        l_query_enc_len = dap_enc_code_out_size(a_client_internal->session_key, l_query_len, l_enc_type),
+        l_req_enc_len = dap_enc_code_out_size(a_client_internal->session_key, a_request_data_size, DAP_ENC_DATA_TYPE_RAW);
 
-    size_t l_request_enc_size_max = a_request_data_size ? a_request_data_size * 2 + 16 : 0;
-    char * l_request_enc = a_request_data_size ? DAP_NEW_Z_SIZE(char, l_request_enc_size_max + 1) : NULL;
+    char l_suburl_enc[ l_suburl_enc_len + 1 ], l_query_enc[ l_query_enc_len + 1 ], *l_req_enc = DAP_NEW_Z_SIZE(char, l_req_enc_len + 1);
 
     a_client_internal->is_encrypted = true;
-    dap_enc_data_type_t l_enc_type;
+    l_suburl_enc_len = dap_enc_code(a_client_internal->session_key, s_suburl,             l_suburl_len,       l_suburl_enc, l_suburl_enc_len + 1, l_enc_type);
+    l_query_enc_len  = dap_enc_code(a_client_internal->session_key, s_query,              l_query_len,        l_query_enc,  l_query_enc_len + 1,  l_enc_type);
+    *a_enc_request_size = dap_enc_code(a_client_internal->session_key, a_request_data_str,a_request_data_size,l_req_enc,    l_req_enc_len + 1,    DAP_ENC_DATA_TYPE_RAW);
 
-    if(a_client_internal->uplink_protocol_version >= 21)
-        l_enc_type = DAP_ENC_DATA_TYPE_B64_URLSAFE;
-    else
-        l_enc_type = DAP_ENC_DATA_TYPE_B64;
-
-    if(l_sub_url_size)
-        dap_enc_code(a_client_internal->session_key,
-                l_sub_url, l_sub_url_size,
-                l_sub_url_enc, l_sub_url_enc_size_max,
-                l_enc_type);
-
-    if(is_query_enc && l_query_size)
-        dap_enc_code(a_client_internal->session_key,
-                a_query, l_query_size,
-                l_query_enc, l_query_enc_size_max,
-                l_enc_type);
-
-    if(a_request_data_size)
-        *a_enc_request_size = dap_enc_code(a_client_internal->session_key,
-                a_request_data_str, a_request_data_size,
-                l_request_enc, l_request_enc_size_max,
-                DAP_ENC_DATA_TYPE_RAW);
-
-    size_t l_path_size= l_query_enc_size_max + l_sub_url_enc_size_max + 1;
-    const char * path = "exec_cmd";
-    *a_path = DAP_NEW_Z_SIZE(char, l_path_size);
-    (*a_path)[0] = '\0';
-    if(path) {
-        if(l_sub_url_size){
-            if(l_query_size){
-                snprintf(*a_path, l_path_size, "%s/%s?%s", path?path:"",
-                             l_sub_url_enc?l_sub_url_enc:"",
-                                   l_query_enc?l_query_enc:"");
-            }else{
-                snprintf(*a_path, l_path_size, "%s/%s", path, l_sub_url_enc);
-            }
-        } else {
-            dap_stpcpy(*a_path, path);
-        }
-    }
+    l_suburl_enc[l_suburl_enc_len] = l_query_enc[l_query_enc_len] = '\0';
 
-    size_t l_size_required = a_client_internal->session_key_id ? strlen(a_client_internal->session_key_id) + 40 : 40;
-    *a_custom_header = DAP_NEW_Z_SIZE(char, l_size_required);
-    size_t l_off = snprintf(*a_custom_header, l_size_required, "KeyID: %s\r\n", 
-                            a_client_internal->session_key_id ? a_client_internal->session_key_id : "NULL");
-    if (a_client_internal->is_close_session)
-        snprintf(*a_custom_header + l_off, l_size_required - l_off, "%s\r\n", "SessionCloseAfterRequest: true");
-    
-    DAP_DEL_Z(l_sub_url_enc);
-    DAP_DEL_Z(l_query_enc);
-
-    return l_request_enc;
+    *a_path = dap_strdup_printf("exec_cmd/%s?%s", l_suburl_enc, l_query_enc);
+    *a_custom_header = dap_strdup_printf("KeyID: %s\r\n%s",
+                                         a_client_internal->session_key_id ? a_client_internal->session_key_id : "NULL",
+                                         a_client_internal->is_close_session ? "SessionCloseAfterRequest: true\r\n" : "");
+    return l_req_enc;
 }
 
 
 dap_json_rpc_request_t *dap_json_rpc_request_creation(const char *a_method, dap_json_rpc_params_t *a_params, int64_t a_id)
 {
-    dap_json_rpc_request_t *request = DAP_NEW(dap_json_rpc_request_t);
-    if (!request)
-    {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-    }
-    request->method = dap_strdup(a_method);
-    request->params = a_params;
-    request->id = a_id;
+    dap_json_rpc_request_t *request = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_json_rpc_request_t, NULL);
+    *request = (dap_json_rpc_request_t) {
+        dap_strdup(a_method), a_params, a_id
+    };
     return request;
 }
 
 void dap_json_rpc_request_free(dap_json_rpc_request_t *request)
 {
-    if (request)
-    {
-        DAP_DEL_Z(request->method);
-        if (request->params)
-            dap_json_rpc_params_remove_all(request->params);
-        DAP_FREE(request);
-    }
+    if (!request)
+        return;
+    DAP_DELETE(request->method);
+    if (request->params)
+        dap_json_rpc_params_remove_all(request->params);
+    DAP_DELETE(request);
 }
 
 dap_json_rpc_request_t *dap_json_rpc_request_from_json(const char *a_data)
 {
     if (!a_data)
         return NULL;
+    dap_json_rpc_request_t *request = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_json_rpc_request_t, NULL);
     enum json_tokener_error jterr;
-    bool err_parse_request = false;
-    json_object *jobj = json_tokener_parse_verbose(a_data, &jterr);
-    json_object *jobj_id = NULL;
-    json_object *jobj_method = NULL;
-    json_object *jobj_params = NULL;
-
-    dap_json_rpc_request_t *request = DAP_NEW_Z(dap_json_rpc_request_t);
-    if (!request)
-    {
-        log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-        return NULL;
-    }
-
+    json_object *jobj = json_tokener_parse_verbose(a_data, &jterr),
+                *jobj_id = NULL,
+                *jobj_method = NULL,
+                *jobj_params = NULL;
     if (jterr == json_tokener_success)
-    {
-        if (json_object_object_get_ex(jobj, "id", &jobj_id))
-        {
-            request->id = json_object_get_int64(jobj_id);
-        }
-        else
-        {
-            log_it(L_ERROR, "Error parse JSON string, Can't searching id request");
-            err_parse_request = true;
-        }
+        do {
+            if (json_object_object_get_ex(jobj, "id", &jobj_id))
+                request->id = json_object_get_int64(jobj_id);
+            else {
+                log_it(L_ERROR, "Error parse JSON string, can't find request id");
+                break;
+            }
 
-        if (json_object_object_get_ex(jobj, "method", &jobj_method))
-        {
-            request->method = dap_strdup(json_object_get_string(jobj_method));
-        }
-        else
-        {
-            log_it(L_ERROR, "Error parse JSON string, Can't searching method for request with id: %" DAP_UINT64_FORMAT_U, request->id);
-            err_parse_request = true;
-        }
+            if (json_object_object_get_ex(jobj, "method", &jobj_method))
+                request->method = dap_strdup(json_object_get_string(jobj_method));
+            else {
+                log_it(L_ERROR, "Error parse JSON string, can't find method for request with id: %" DAP_UINT64_FORMAT_U, request->id);
+                break;
+            }
 
-        if (json_object_object_get_ex(jobj, "params", &jobj_params) && !err_parse_request)
-        {
-            request->params = dap_json_rpc_params_create_from_array_list(jobj_params);
-        }
-        else
-        {
-            log_it(L_ERROR, "Error parse JSON string, Can't searching array params for request with id: %" DAP_UINT64_FORMAT_U, request->id);
-            err_parse_request = true;
-        }
-    }
+            if (json_object_object_get_ex(jobj, "params", &jobj_params))
+                request->params = dap_json_rpc_params_create_from_array_list(jobj_params);
+            else {
+                log_it(L_ERROR, "Error parse JSON string, Can't find array params for request with id: %" DAP_UINT64_FORMAT_U, request->id);
+                break;
+            }
+            json_object_put(jobj);
+            return request;
+        } while (0);
     else
-    {
         log_it(L_ERROR, "Error parse json tokener: %s", json_tokener_error_desc(jterr));
-        err_parse_request = true;
-    }
-    if (err_parse_request)
-    {
-        DAP_FREE(request->method);
-        DAP_FREE(request);
-        json_object_put(jobj);
-        return NULL;
-    }
     json_object_put(jobj);
-    return request;
+    dap_json_rpc_params_remove_all(request->params);
+    DAP_DEL_MULTY(request->method, request);
+    return NULL;
 }
 
 char *dap_json_rpc_request_to_json_string(const dap_json_rpc_request_t *a_request)
 {
     char *params_json = dap_json_rpc_params_get_string_json(a_request->params);
     if (!params_json)
-    {
-        log_it(L_CRITICAL, "Failed to generate JSON for params");
-        return NULL;
-    }
+        return log_it(L_ERROR, "Failed to generate JSON for params"), NULL;
 
     char *l_str = dap_strdup_printf(
         "{\"method\":\"%s\", \"params\":%s, \"id\":\"%" DAP_UINT64_FORMAT_U "\" }",
         a_request->method, params_json, a_request->id);
-
-    DAP_FREE(params_json);
+    DAP_DELETE(params_json);
     return l_str;
 }
 
@@ -381,74 +297,39 @@ char *dap_json_rpc_http_request_serialize(dap_json_rpc_http_request_t *a_request
 {
     *a_total_size = a_request->header.data_size + a_request->header.signs_size + sizeof(a_request->header);
 
-    char *a_output = DAP_NEW_SIZE(char, *a_total_size);
-    if (!a_output) {
-        return NULL;
-    }
-
-    char *ptr = a_output;
-
-    memcpy(ptr, &a_request->header, sizeof(a_request->header));
-    ptr += sizeof(a_request->header);
+    char *a_output = DAP_NEW_Z_SIZE_RET_VAL_IF_FAIL(char, *a_total_size, NULL),
+         *ptr = dap_mempcpy(a_output, &a_request->header, sizeof(a_request->header));
 
     char *l_str = dap_json_rpc_request_to_json_string(a_request->request);
-    if (!l_str) {
-        DAP_DEL_Z(a_output);
-        return NULL;
-    }
-
-    memcpy(ptr, l_str, a_request->header.data_size);
-    ptr += a_request->header.data_size;
-    DAP_DEL_Z(l_str);
+    if (!l_str)
+        return DAP_DELETE(a_output), NULL;
 
+    ptr = dap_mempcpy(ptr, l_str, a_request->header.data_size);
+    DAP_DELETE(l_str);
     memcpy(ptr, a_request->tsd_n_signs, a_request->header.signs_size);
-
     return a_output;
 }
 
 dap_json_rpc_http_request_t *dap_json_rpc_http_request_deserialize(const void *data, size_t data_size)
 {
-    char *ptr = (char *)data;
-    dap_json_rpc_http_request_t *l_http_request = DAP_NEW_Z(dap_json_rpc_http_request_t);
-    if (!l_http_request)
-        return NULL;
-
-    memcpy(&l_http_request->header, ptr, sizeof(l_http_request->header));
-    ptr += sizeof(l_http_request->header);
-
-    if (data_size < (sizeof(l_http_request->header) + l_http_request->header.data_size + l_http_request->header.signs_size)) {
-        log_it(L_ERROR, "Wrong size of request");
-        DAP_DEL_Z(l_http_request);
-        return NULL;
-    }
-
-    char *l_request_str = DAP_NEW_Z_SIZE(char, l_http_request->header.data_size+1);
-    if (!l_request_str) {
-        DAP_DEL_Z(l_http_request);
-        return NULL;
-    }
-
-    memcpy(l_request_str, ptr, l_http_request->header.data_size+1);
-    l_request_str[l_http_request->header.data_size] = '\0';
-    l_http_request->request = dap_json_rpc_request_from_json(l_request_str);
-    DAP_DEL_Z(l_request_str);
-
-    if (!l_http_request->request) {
-        log_it(L_ERROR, "Can't parse request from string, length = %d", l_http_request->header.data_size);
-        DAP_DEL_Z(l_http_request);
-        return NULL;
-    }
-    ptr += l_http_request->header.data_size;
-
-    if (l_http_request->header.signs_size > 0) {
-        l_http_request = DAP_REALLOC(l_http_request, sizeof(dap_json_rpc_http_request_t) + l_http_request->header.signs_size);
-        if (!l_http_request) {
-            return NULL;
-        }
-        memcpy(l_http_request->tsd_n_signs, ptr, l_http_request->header.signs_size);
-    }
-
-    return l_http_request;
+    if (data_size < sizeof(dap_json_rpc_http_request_t))
+        return log_it(L_ERROR, "Data size is less than minimum: %zu < %zu",
+                               data_size, sizeof(dap_json_rpc_http_request_t)),
+               NULL;
+    __typeof__( (dap_json_rpc_http_request_t){0}.header ) l_hdr;
+    memcpy(&l_hdr, data, sizeof(l_hdr));
+    if ( data_size < sizeof(dap_json_rpc_http_request_t) + l_hdr.data_size + l_hdr.signs_size )
+        return log_it(L_ERROR, "Data size is less than needed: %zu < %zu",
+                               data_size, sizeof(dap_json_rpc_http_request_t) + l_hdr.data_size + l_hdr.signs_size),
+               NULL;
+
+    dap_json_rpc_http_request_t *l_ret
+        = DAP_NEW_Z_SIZE_RET_VAL_IF_FAIL(dap_json_rpc_http_request_t, sizeof(dap_json_rpc_http_request_t) + l_hdr.signs_size, NULL);
+    l_ret->header = l_hdr;
+    l_ret->request = dap_json_rpc_request_from_json((char*)data + sizeof(l_ret->header));
+    if (l_hdr.signs_size)
+        memcpy(l_ret->tsd_n_signs, (byte_t*)data + sizeof(l_hdr) + l_hdr.data_size, l_hdr.signs_size);
+    return l_ret;
 }
 
 void dap_json_rpc_http_request_free(dap_json_rpc_http_request_t *a_http_request)
@@ -456,54 +337,50 @@ void dap_json_rpc_http_request_free(dap_json_rpc_http_request_t *a_http_request)
     if (!a_http_request)
         return;
 
-    if (a_http_request->request)
-        dap_json_rpc_request_free(a_http_request->request);
-
-    DAP_DEL_Z(a_http_request);
+    dap_json_rpc_request_free(a_http_request->request);
+    DAP_DELETE(a_http_request);
 }
 
 dap_json_rpc_http_request_t *dap_json_rpc_request_sign_by_cert(dap_json_rpc_request_t *a_request, dap_cert_t *a_cert)
 {
     char *l_str = dap_json_rpc_request_to_json_string(a_request);
-    dap_sign_t *l_sign = dap_cert_sign(a_cert, l_str, sizeof(l_str), 0);
+    if (!l_str)
+        return log_it(L_ERROR, "Can't convert JSON-request to string!"), NULL;
+    int l_len = strlen(l_str);
+    dap_sign_t *l_sign = dap_cert_sign(a_cert, l_str, l_len, 0);
+    DAP_DELETE(l_str);
     if (!l_sign)
-    {
-        log_it(L_ERROR, "Decree signing failed");
-        DAP_DELETE(l_str);
-        return NULL;
-    }
-    dap_json_rpc_http_request_t *ret = DAP_NEW_Z(dap_json_rpc_http_request_t);
+        return log_it(L_ERROR, "JSON request signing failed"), NULL;
     size_t l_sign_size = dap_sign_get_size(l_sign);
-    ret->request = a_request;
-    ret->header.data_size = strlen(l_str);
-    ret->header.signs_size = l_sign_size;
-    if (ret->header.signs_size >0) {
-        ret = DAP_REALLOC(ret, sizeof(dap_json_rpc_http_request_t) + ret->header.signs_size);
-        memcpy(ret->tsd_n_signs, l_sign, l_sign_size);
-    }
-    DAP_DELETE(l_str);
-    DAP_DELETE(l_sign);
-    return ret;
+
+    dap_json_rpc_http_request_t *l_ret
+        = DAP_NEW_Z_SIZE_RET_VAL_IF_FAIL(dap_json_rpc_http_request_t, sizeof(dap_json_rpc_http_request_t) + l_sign_size, NULL, l_sign);
+    *l_ret = (dap_json_rpc_http_request_t) {
+        .header.data_size = l_len + 1,
+        .header.signs_size = l_sign_size,
+        .request = a_request
+    };
+    memcpy(l_ret->tsd_n_signs, l_sign, l_sign_size);
+    return DAP_DELETE(l_sign), l_ret;
 }
 
 char* dap_json_rpc_request_to_http_str(dap_json_rpc_request_t *a_request, size_t*output_data_size){
     a_request->id = 0;
     dap_cert_t *l_cert = dap_cert_find_by_name("node-addr");
-    if (!l_cert) {
-        log_it(L_ERROR, "Can't load cert");
-        return NULL;
-    }
+    if (!l_cert)
+        return log_it(L_ERROR, "Can't load cert"), NULL;
+
     dap_json_rpc_http_request_t *l_http_request = dap_json_rpc_request_sign_by_cert(a_request, l_cert);
     size_t l_http_length = 0;
     char *l_http_str = dap_json_rpc_http_request_serialize(l_http_request, output_data_size);
-    return l_http_str;
+    return DAP_DELETE(l_http_request), l_http_str;
 }
 
 int dap_json_rpc_request_send(dap_client_pvt_t*  a_client_internal, dap_json_rpc_request_t *a_request, json_object** a_response) {
-    size_t l_request_data_size = 0, l_enc_request_size, l_response_size;
+    size_t l_request_data_size, l_enc_request_size, l_response_size;
     char* l_custom_header = NULL, *l_path = NULL;
 
-    char* l_request_data_str =  dap_json_rpc_request_to_http_str(a_request, &l_request_data_size);
+    char* l_request_data_str = dap_json_rpc_request_to_http_str(a_request, &l_request_data_size);
     if (!l_request_data_str)
         return -1;
 
@@ -519,22 +396,21 @@ int dap_json_rpc_request_send(dap_client_pvt_t*  a_client_internal, dap_json_rpc
     log_it(L_DEBUG, "Send enc json-rpc request to %s:%d, path = %s, request size = %lu",
                      a_client_internal->client->link_info.uplink_addr, a_client_internal->client->link_info.uplink_port, l_path, l_enc_request_size);
 
-    a_client_internal->http_client = dap_client_http_request(
-                                    a_client_internal->worker, 
-                                    a_client_internal->client->link_info.uplink_addr,
-                                    a_client_internal->client->link_info.uplink_port,
-                                    "POST", "application/json",
-                                    l_path, l_enc_request, l_enc_request_size, NULL,
-                                    s_exec_cmd_response_handler, s_exec_cmd_error_handler, 
-                                    l_exec_cmd_request, l_custom_header);
+    a_client_internal->http_client = dap_client_http_request(a_client_internal->worker,
+                                                             a_client_internal->client->link_info.uplink_addr,
+                                                             a_client_internal->client->link_info.uplink_port,
+                                                             "POST", "application/json",
+                                                             l_path, l_enc_request, l_enc_request_size, NULL,
+                                                             s_exec_cmd_response_handler, s_exec_cmd_error_handler,
+                                                             l_exec_cmd_request, l_custom_header);
 
     int l_ret = dap_chain_exec_cmd_list_wait(l_exec_cmd_request, 15000);
     switch (l_ret) {
         case EXEC_CMD_OK :{
             if (s_exec_cmd_request_get_response(l_exec_cmd_request, a_response, &l_response_size)) {
-                char * l_err = dap_strdup_printf("Response error code: %d", l_exec_cmd_request->error_code);
+                char l_err[40] = "";
+                snprintf(l_err, sizeof(l_err), "Response error code: %d", l_exec_cmd_request->error_code);
                 *a_response = json_object_new_string(l_err);
-                DAP_DEL_Z(l_err);
                 break;
             }
             log_it(L_DEBUG, "Get response from %s:%d, response size = %lu",
@@ -554,11 +430,7 @@ int dap_json_rpc_request_send(dap_client_pvt_t*  a_client_internal, dap_json_rpc
             break;
         }
     }
-
     s_exec_cmd_request_free(l_exec_cmd_request);
-
-    DAP_DEL_Z(l_custom_header);
-    DAP_DEL_Z(l_path);
-    DAP_DEL_Z(l_enc_request);
+    DAP_DEL_MULTY(l_custom_header, l_path, l_enc_request);
     return l_ret;
 }
diff --git a/net/server/json_rpc/rpc_core/src/dap_json_rpc_response_handler.c b/net/server/json_rpc/rpc_core/src/dap_json_rpc_response_handler.c
index ab521f7dbc2b416015872b23610c952b1587b1e4..225f66f1174f16be4aba34afe2f8c49be41c58c8 100644
--- a/net/server/json_rpc/rpc_core/src/dap_json_rpc_response_handler.c
+++ b/net/server/json_rpc/rpc_core/src/dap_json_rpc_response_handler.c
@@ -3,37 +3,30 @@
 #define LOG_TAG "dap_json_rpc_response_handler"
 
 static dap_json_rpc_response_handler_t *s_response_handlers = NULL;
-static uint64_t s_delta = 0;
+static _Atomic(uint64_t) s_delta = 0;
 
 int dap_json_rpc_response_registration_with_id(uint64_t a_id, dap_json_rpc_response_handler_func_t *func)
 {
     dap_json_rpc_response_handler_t *l_handler = NULL;
     HASH_FIND_INT(s_response_handlers, &a_id, l_handler);
-    if (l_handler == NULL){
-        l_handler = DAP_NEW(dap_json_rpc_response_handler_t);
-        if (!l_handler) {
-            log_it(L_CRITICAL, "%s", c_error_memory_alloc);
-            return -1;
-        }
-        l_handler->id = a_id;
-        l_handler->func = func;
-        HASH_ADD_INT(s_response_handlers, id, l_handler);
-        log_it(L_NOTICE, "Registration handler response with id: %"DAP_UINT64_FORMAT_U, a_id);
-        return 0;
-    }
-    return 1;
+    if (l_handler)
+        return 1;
+    l_handler = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_json_rpc_response_handler_t, -1);
+    l_handler->id = a_id;
+    l_handler->func = func;
+    HASH_ADD_INT(s_response_handlers, id, l_handler);
+    log_it(L_NOTICE, "Registration handler response with id: %"DAP_UINT64_FORMAT_U, a_id);
+    return 0;
 }
 uint64_t dap_json_rpc_response_registration(dap_json_rpc_response_handler_func_t *func)
 {
-    uint64_t l_id_registration_response = dap_json_rpc_response_get_new_id();
-    int res = dap_json_rpc_response_registration_with_id(l_id_registration_response, func);
-    return res;
+    return dap_json_rpc_response_registration_with_id(dap_json_rpc_response_get_new_id(), func);
 }
 void dap_json_rpc_response_unregistration(uint64_t a_id)
 {
     dap_json_rpc_response_handler_t *l_handler = NULL;
     HASH_FIND_INT(s_response_handlers, &a_id, l_handler);
-    if (l_handler != NULL){
+    if (l_handler) {
         HASH_DEL(s_response_handlers, l_handler);
         DAP_FREE(l_handler);
         log_it(L_NOTICE, "Unregistration handler response with id: %"DAP_UINT64_FORMAT_U, a_id);
@@ -73,9 +66,7 @@ void  dap_json_rpc_response_handler(dap_json_rpc_response_t *a_response)
 
 uint64_t dap_json_rpc_response_get_new_id(void)
 {
-    uint64_t l_ret = s_delta;
-    s_delta++;
-    return l_ret;
+    return ++s_delta;
 }
 
 void dap_json_rpc_response_accepted(void *a_data, size_t a_size_data, UNUSED_ARG void *a_obj, http_status_code_t http_status)
@@ -93,4 +84,4 @@ void dap_json_rpc_response_accepted(void *a_data, size_t a_size_data, UNUSED_ARG
         l_response = dap_json_rpc_response_from_string((char*)a_data);
     dap_json_rpc_response_handler(l_response);
     dap_json_rpc_response_free(l_response);
-}
\ No newline at end of file
+}
diff --git a/net/server/notify_server/src/dap_notify_srv.c b/net/server/notify_server/src/dap_notify_srv.c
index 30728be945c44394d5631ecf13dd6c78efd4d0b8..832fe3db7f7b9f5ee209331927b40f204411527b 100644
--- a/net/server/notify_server/src/dap_notify_srv.c
+++ b/net/server/notify_server/src/dap_notify_srv.c
@@ -217,7 +217,7 @@ static void s_notify_server_callback_queue(dap_events_socket_t * a_es, void * a_
 #ifdef DAP_EVENTS_CAPS_IOCP
             a_arg;
 #else
-            DAP_DUP_SIZE(a_arg, l_str_len + 1);
+            DAP_DUP_SIZE((char*)a_arg, l_str_len + 1);
 #endif
         
         dap_events_socket_write_mt( dap_events_worker_get(l_worker_id),
diff --git a/net/stream/stream/dap_stream_pkt.c b/net/stream/stream/dap_stream_pkt.c
index f92a12da5c7d8e8a7050fdd789ed10a95418262f..db5a9197eeb4abe233196df227db0887715df7a7 100644
--- a/net/stream/stream/dap_stream_pkt.c
+++ b/net/stream/stream/dap_stream_pkt.c
@@ -91,7 +91,7 @@ size_t dap_stream_pkt_write_mt(dap_worker_t * a_w,dap_events_socket_uuid_t a_es_
     dap_worker_msg_io_t *l_msg = DAP_NEW_Z_RET_VAL_IF_FAIL(dap_worker_msg_io_t, 0);
     l_msg->esocket_uuid = a_es_uuid;
     l_msg->data_size = dap_enc_code_out_size(a_key, a_data_size, DAP_ENC_DATA_TYPE_RAW);
-    l_msg->data = DAP_NEW_Z_SIZE_RET_VAL_IF_FAIL(void, l_msg->data_size, 0, l_msg);
+    l_msg->data = DAP_NEW_Z_SIZE_RET_VAL_IF_FAIL(byte_t, l_msg->data_size, 0, l_msg);
     dap_stream_pkt_hdr_t *l_pkt_hdr = (dap_stream_pkt_hdr_t*)l_msg->data;
     memcpy(l_pkt_hdr->sig, c_dap_stream_sig, sizeof(l_pkt_hdr->sig));
     l_msg->data_size = sizeof(*l_pkt_hdr) + dap_enc_code(a_key, a_data, a_data_size,