diff --git a/.gitmodules b/.gitmodules
index dcac5fba3b30e5c561be87920eed2177945dfccd..f8507c5701f846483bb94febae70684475d3b162 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,8 +5,8 @@
 [submodule "python-cellframe"]
 	path = python-cellframe
 	url = ../python-cellframe.git
-	branch = master
+	branch = testing
 [submodule "cellframe-sdk"]
 	path = cellframe-sdk
 	url = ../cellframe-sdk.git
-	branch = master
+	branch = testing
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4bc7794306fab7c87f1e2673134529762b16f32d..eb40f7c9effeee06dcd31a592682663d9708c955 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,10 +6,9 @@ set(CMAKE_C_STANDARD 11)
 
 # Predefine project
 SET( CPACK_PACKAGE_NAME  "${PROJECT_NAME}")
-SET( CPACK_PACKAGE_VERSION_MAJOR 3)
-SET( CPACK_PACKAGE_VERSION_MINOR 6)
-SET( CPACK_PACKAGE_VERSION_PATCH 2)
-
+SET( CPACK_PACKAGE_VERSION_MAJOR 4)
+SET( CPACK_PACKAGE_VERSION_MINOR 0)
+SET( CPACK_PACKAGE_VERSION_PATCH 4)
 
 # init CellFrame SDK
 add_definitions("-DDAP_VERSION=\"${CPACK_PACKAGE_VERSION_MAJOR}\"")
diff --git a/prod_build/linux/debian/scripts/deploy.sh b/prod_build/linux/debian/scripts/deploy.sh
index 85bbb95da9a6c29b5d20eb920bc517ec65ed5ea0..842419e6a55cbf8660f20effb4aa6908035080fc 100755
--- a/prod_build/linux/debian/scripts/deploy.sh
+++ b/prod_build/linux/debian/scripts/deploy.sh
@@ -28,7 +28,9 @@ for pkgfile in $PKGFILES; do
 	CODENAME=$(echo $pkgname | rev | cut -d '-' -f1 | rev)
 	cp -r ../prod_build/general/essentials/weblink-latest ../prod_build/general/essentials/$pkgname_weblink
 	sed -i "/document/s/cellframe.*deb/$pkgname_public$MOD.deb/" ../prod_build/general/essentials/$pkgname_weblink/index.php
-	if [[ $(echo $CI_COMMIT_REF_NAME | grep "master\|^release") ]]; then
+	if [[ $(echo $CI_COMMIT_REF_NAME | grep "master\|^release") != "" ]]; then
+		echo "REF_NAME is $CI_COMMIT_REF_NAME"
+		ssh -i $CELLFRAME_REPO_KEY "$CELLFRAME_FILESERVER_CREDS" "mkdir -p $CELLFRAME_FILESERVER_PATH/$SUBDIR"
 		scp -i $CELLFRAME_REPO_KEY $wd/$PACKAGE_PATH/$pkgname$MOD.deb "$CELLFRAME_FILESERVER_CREDS:$CELLFRAME_FILESERVER_PATH/$SUBDIR/$pkgname_public$MOD.deb"
 		scp -r -i $CELLFRAME_REPO_KEY ../prod_build/general/essentials/$pkgname_weblink "$CELLFRAME_FILESERVER_CREDS:$CELLFRAME_FILESERVER_PATH/$SUBDIR/"
 		if [[ $CI_COMMIT_REF_NAME == "master" ]]; then
diff --git a/sources/main.c b/sources/main.c
index 2fe6e2113436b4ab28ffa609a64b2d80dc4b1a4a..8f111f8f58ed90aafd09caac7d9eae2d96acf72b 100755
--- a/sources/main.c
+++ b/sources/main.c
@@ -104,13 +104,12 @@
 #include "dap_chain_net_srv_stake.h"
 
 #include "dap_common.h"
-#include "dap_client_remote.h"
+#include "dap_events_socket.h"
 #include "dap_client.h"
 #include "dap_http_client.h"
 //#include "dap_http_client_simple.h"
 #include "dap_http_simple.h"
 #include "dap_process_manager.h"
-#include "dap_traffic_track.h"
 
 #include "dap_defines.h"
 #include "dap_file_utils.h"
@@ -223,22 +222,22 @@ int main( int argc, const char **argv )
     	#endif
   	}
 
-    bServerEnabled = dap_config_get_item_bool_default( g_config, "server", "enabled", false );
-
-    log_it ( L_DEBUG,"config server->enabled = \"%u\" ", bServerEnabled );
-
-    if ( bServerEnabled && dap_server_init(l_thread_cnt) != 0 ) {
-    	log_it( L_CRITICAL, "Can't init socket server module" );
-	    return -4;
-	}
-
     // New event loop init
     dap_events_init( 0, 0 );
     dap_events_t *l_events = dap_events_new( );
     dap_events_start( l_events );
-
     dap_client_init();
 
+    bServerEnabled = dap_config_get_item_bool_default( g_config, "server", "enabled", false );
+
+    log_it ( L_DEBUG,"config server->enabled = \"%u\" ", bServerEnabled );
+
+    if ( bServerEnabled && dap_server_init() != 0 ) {
+        log_it( L_CRITICAL, "Can't init socket server module" );
+        return -4;
+    }
+
+
 	if ( dap_http_init() != 0 ) {
     	log_it( L_CRITICAL, "Can't init http server module" );
 	    return -5;
@@ -396,7 +395,7 @@ int main( int argc, const char **argv )
         int32_t l_port = dap_config_get_item_int32(g_config, "server", "listen_port_tcp");
 
         if( l_port > 0 ) {
-            l_server = dap_server_listen((dap_config_get_item_str(g_config, "server", "listen_address")),
+            l_server = dap_server_new(l_events,  (dap_config_get_item_str(g_config, "server", "listen_address")),
                                    (uint16_t) l_port,
                                    DAP_SERVER_TCP );
         } else
@@ -479,15 +478,8 @@ int main( int argc, const char **argv )
         dap_chain_plugins_init(g_config);
     #endif
 
-    if (bServerEnabled) {
-        // Endless loop for server's requests processing
-        rc = dap_server_loop(l_server);
-        // After loop exit actions
-        log_it( rc ? L_CRITICAL : L_NOTICE, "Server loop stopped with return code %d", rc );
-    } else {
-        dap_events_wait(l_events);
-    }
-
+    rc = dap_events_wait(l_events);
+    log_it( rc ? L_CRITICAL : L_NOTICE, "Server loop stopped with return code %d", rc );
     // Deinit modules
 
 //failure: