diff --git a/libdap b/libdap
index 574b57e277b0c72790db9fabfcb64201700e34ec..01e68fc7aaa96cb520524d35f7f76c57d4c4d106 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit 574b57e277b0c72790db9fabfcb64201700e34ec
+Subproject commit 01e68fc7aaa96cb520524d35f7f76c57d4c4d106
diff --git a/libdap-chain b/libdap-chain
index d790628d8f9a77d46e0a233892f196a4d69a3739..af3169c7f9ea0539b4845fa8c01951377ec75278 160000
--- a/libdap-chain
+++ b/libdap-chain
@@ -1 +1 @@
-Subproject commit d790628d8f9a77d46e0a233892f196a4d69a3739
+Subproject commit af3169c7f9ea0539b4845fa8c01951377ec75278
diff --git a/libdap-chain-net b/libdap-chain-net
index b92ccafc47577e91f55073edf8b2eae1e94fc83c..829418729fac9af5df9e8e757d5e3bf89cffd19f 160000
--- a/libdap-chain-net
+++ b/libdap-chain-net
@@ -1 +1 @@
-Subproject commit b92ccafc47577e91f55073edf8b2eae1e94fc83c
+Subproject commit 829418729fac9af5df9e8e757d5e3bf89cffd19f
diff --git a/libdap-chain-wallet b/libdap-chain-wallet
index 14ad232a6073aea30abcff53d69f91bcd0f5e1a5..366011679534b5c960ae618bb6aed1112ab0a5e9 160000
--- a/libdap-chain-wallet
+++ b/libdap-chain-wallet
@@ -1 +1 @@
-Subproject commit 14ad232a6073aea30abcff53d69f91bcd0f5e1a5
+Subproject commit 366011679534b5c960ae618bb6aed1112ab0a5e9
diff --git a/sources/main.c b/sources/main.c
index a0ffa02c9139eb153cdfa34dd8de0b05080209a0..e0c6adb02053bf695935e1e0db3df1e1f780a9e3 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -125,9 +125,7 @@
 void parse_args( int argc, const char **argv );
 void exit_if_server_already_running( void );
 
-static char *s_config_dir = NULL;
 static char *s_pid_file_path = NULL;
-static char *s_log_file_path = NULL;
 static void s_auth_callback(enc_http_delegate_t *a_delegate, void * a_arg);
 
 #ifdef __ANDROID__
@@ -146,36 +144,39 @@ int main( int argc, const char **argv )
 		S_SetExceptionFilter( );
 	#endif
 
-    {
 #ifdef _WIN32
-        s_sys_dir_path =dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
 #elif DAP_OS_MAC
-        s_sys_dir_path =dap_strdup_printf( "/Applications/%s.app/Contents/Resources", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/Applications/%s.app/Contents/Resources", dap_get_appname());
 #elif DAP_OS_ANDROID
-        s_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
 #elif DAP_OS_UNIX
-        g_sys_dir_path =dap_strdup_printf("/opt/%s", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/opt/%s", dap_get_appname());
 #endif
-        g_sys_dir_path_len = strlen(g_sys_dir_path);
-
-        s_config_dir = dap_strdup_printf ("%s/etc", g_sys_dir_path );
-        s_log_file_path = dap_strdup_printf ("%s/var/log/%s.log", g_sys_dir_path,dap_get_appname());
-
-        char *l_log_dir_path = dap_strdup_printf ("%s/var/log", g_sys_dir_path);
-        dap_mkdir_with_parents( l_log_dir_path );
-        DAP_DELETE(l_log_dir_path);
-
-        if ( dap_common_init( dap_get_appname(), s_log_file_path ) != 0 ) {
-            printf( "Fatal Error: Can't init common functions module" );
+    {
+        char l_log_path[MAX_PATH] = {'\0'};
+        int l_pos = dap_sprintf(l_log_path, "%s/var/log", g_sys_dir_path);
+        dap_mkdir_with_parents(l_log_path);
+        dap_sprintf(l_log_path + l_pos, "/%s.log", dap_get_appname());
+        if (dap_common_init(dap_get_appname(), l_log_path) != 0) {
+            printf("Fatal Error: Can't init common functions module");
             return -2;
         }
-        dap_config_init( s_config_dir );
-        if ( (g_config = dap_config_open(dap_get_appname())) == NULL ) {
-            log_it( L_CRITICAL,"Can't init general configurations" );
-            return -1;
-        }
-        s_pid_file_path = dap_config_get_item_str_default( g_config,  "resources", "pid_path","/tmp") ;
     }
+
+    {
+        char l_config_dir[MAX_PATH] = {'\0'};
+        dap_sprintf(l_config_dir, "%s/etc", g_sys_dir_path);
+        dap_config_init(l_config_dir);
+    }
+
+    if ((g_config = dap_config_open(dap_get_appname())) == NULL ) {
+        log_it( L_CRITICAL,"Can't init general configurations" );
+        return -1;
+    }
+
+    s_pid_file_path = dap_config_get_item_str_default( g_config,  "resources", "pid_path","/tmp") ;
+
     log_it(L_DEBUG, "Parsing command line args");
     parse_args( argc, argv );
     #ifdef _WIN32
diff --git a/sources/main_node_cli.c b/sources/main_node_cli.c
index c5e6ceedcb918294c94d9b5f2fb76095325f7367..52e7fa776dcdc87ed1bf0591b6405d24f347a929 100644
--- a/sources/main_node_cli.c
+++ b/sources/main_node_cli.c
@@ -191,37 +191,31 @@ int shell_reader_loop()
 int cellframe_node__cli_Main(int argc, const char *argv[])
 #else
 
-static char * s_config_dir = NULL;
-static char * s_log_file_path= NULL;
 int main(int argc, const char *argv[])
 #endif
 {
-    dap_set_appname("cellframe-node");
+    dap_set_appname("cellframe-node-cli");
 
 #ifdef _WIN32
-    s_sys_dir_path =dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
 #elif DAP_OS_MAC
-    s_sys_dir_path =dap_strdup_printf( "/Applications/%s.app/Contents/Resources", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/Applications/%s.app/Contents/Resources", dap_get_appname());
 #elif DAP_OS_ANDROID
-    s_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
 #elif DAP_OS_UNIX
-    g_sys_dir_path =dap_strdup_printf("/opt/%s", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/opt/%s", dap_get_appname());
 #endif
-    g_sys_dir_path_len = strlen(g_sys_dir_path);
-
-    s_config_dir = dap_strdup_printf ("%s/etc", g_sys_dir_path );
-    s_log_file_path = dap_strdup_printf ("%s/var/log/%s.log", g_sys_dir_path,dap_get_appname());
-
-    char *l_log_dir_path = dap_strdup_printf ("%s/var/log", g_sys_dir_path);
-    dap_mkdir_with_parents( l_log_dir_path );
-    DAP_DELETE(l_log_dir_path);
-
-    if ( dap_common_init( dap_get_appname(), s_log_file_path ) != 0 ) {
-        printf( "Fatal Error: Can't init common functions module" );
+    if (dap_common_init(dap_get_appname(), NULL) != 0) {
+        printf("Fatal Error: Can't init common functions module");
         return -2;
     }
-    dap_log_level_set( L_CRITICAL );
-    dap_config_init( s_config_dir );
+
+    {
+        char l_config_dir[MAX_PATH] = {'\0'};
+        dap_sprintf(l_config_dir, "%s/etc", g_sys_dir_path);
+        dap_config_init(l_config_dir);
+    }
+    dap_log_level_set(L_CRITICAL);
 
     if((g_config = dap_config_open(dap_get_appname())) == NULL) {
         printf("Can't init general configurations %s.cfg\n", dap_get_appname());
diff --git a/sources/main_node_tool.c b/sources/main_node_tool.c
index af50996f67bd4ce76467f2e0d870495ab0a06152..d792b3251b3a71790e493bfbc4300fc07fb4bdfa 100644
--- a/sources/main_node_tool.c
+++ b/sources/main_node_tool.c
@@ -159,27 +159,16 @@ int main(int argc, const char **argv)
         s_help( );
         exit( -2004 );
       }
-      char l_wallets_path[MAX_PATH] = {'\0'};
-#ifdef _WIN32
-        dap_stpcpy(l_wallets_path, s_sys_dir_path);
-#endif
-        dap_sprintf(l_wallets_path + g_sys_dir_path_len, "%s", dap_config_get_item_str(g_config, "resources", "wallets_path"));
-        l_wallet = dap_chain_wallet_create( l_wallet_name, l_wallets_path, l_sig_type );
+      l_wallet = dap_chain_wallet_create(l_wallet_name, dap_config_get_item_str(g_config, "resources", "wallets_path"), l_sig_type);
     }
     else if ( strcmp( argv[2],"sign_file") == 0 ) {
-
       // wallet sign_file <wallet name> <cert index> <data file path> <data offset> <data length> <dsign file path>
       if ( argc < 8 ) {
         log_it(L_ERROR,"Wrong 'wallet sign_file' command params");
         s_help();
         exit(-3000);
       }
-      char l_wallets_path[MAX_PATH] = {'\0'};
-#ifdef _WIN32
-        dap_stpcpy(l_wallets_path, s_sys_dir_path);
-#endif
-        dap_sprintf(l_wallets_path + g_sys_dir_path_len, "%s", dap_config_get_item_str(g_config, "resources", "wallets_path"));
-      dap_chain_wallet_t *l_wallet = dap_chain_wallet_open( argv[3], l_wallets_path);
+      dap_chain_wallet_t *l_wallet = dap_chain_wallet_open(argv[3], dap_config_get_item_str(g_config, "resources", "wallets_path"));
       if ( !l_wallet ) {
         log_it(L_ERROR,"Can't open wallet \"%s\"",argv[3]);
         s_help();
@@ -367,32 +356,28 @@ int main(int argc, const char **argv)
  */
 static int s_init( int argc, const char **argv )
 {
-    dap_set_appname("cellframe-node");
+    dap_set_appname("cellframe-node-tool");
 
 #ifdef _WIN32
-    s_sys_dir_path =dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("%s/%s", regGetUsrPath(), dap_get_appname());
 #elif DAP_OS_MAC
-    s_sys_dir_path =dap_strdup_printf( "/Applications/%s.app/Contents/Resources", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/Applications/%s.app/Contents/Resources", dap_get_appname());
 #elif DAP_OS_ANDROID
-    s_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/storage/emulated/0/opt/%s",dap_get_appname());
 #elif DAP_OS_UNIX
-    g_sys_dir_path =dap_strdup_printf("/opt/%s", dap_get_appname());
+    g_sys_dir_path = dap_strdup_printf("/opt/%s", dap_get_appname());
 #endif
-    g_sys_dir_path_len = strlen(g_sys_dir_path);
-
-    s_config_dir = dap_strdup_printf ("%s/etc", g_sys_dir_path );
-    s_log_file_path = dap_strdup_printf ("%s/var/log/%s.log", g_sys_dir_path,dap_get_appname());
-
-    char *l_log_dir_path = dap_strdup_printf ("%s/var/log", g_sys_dir_path);
-    dap_mkdir_with_parents( l_log_dir_path );
-    DAP_DELETE(l_log_dir_path);
-
-    if ( dap_common_init( dap_get_appname(), s_log_file_path ) != 0 ) {
-        printf( "Fatal Error: Can't init common functions module" );
+    if (dap_common_init(dap_get_appname(), NULL) != 0) {
+        printf("Fatal Error: Can't init common functions module");
         return -2;
     }
-    dap_log_level_set( L_CRITICAL );
-    dap_config_init( s_config_dir );
+
+    {
+        char l_config_dir[MAX_PATH] = {'\0'};
+        dap_sprintf(l_config_dir, "%s/etc", g_sys_dir_path);
+        dap_config_init(l_config_dir);
+    }
+    dap_log_level_set(L_CRITICAL);
 
     if((g_config = dap_config_open(dap_get_appname())) == NULL) {
         printf("Can't init general configurations %s.cfg\n", dap_get_appname());