diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7b7dc51aff466bb08c52e1294d3a58599caa481e..6ed0d58bfb191db8bb418f774b08a6c22f5288bf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,39 +5,42 @@ set(CMAKE_VERBOSE_MAKEFILE ON)
 set(CMAKE_COLOR_MAKEFILE   ON)
 set (CMAKE_CXX_STANDARD 11)
 
+add_definitions ("-DDAP_SERVER")
+
+add_subdirectory(libdap-server)
 add_subdirectory(libdap)
 #add_subdirectory(libdap-chain)
-add_subdirectory(libdap-server)
 add_subdirectory(libdap-stream)
 
-add_definitions ("-DDAP_SERVER")
 
 include_directories("${INCLUDE_DIRECTORIES} ${dap_core_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_http_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_crypto_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_udp_server_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_enc_server_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_http_server_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_client_INCLUDE_DIRS}")
 #include_directories("${INCLUDE_DIRECTORIES} ${dap-chain_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_core_server_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_stream_INCLUDE_DIRS}")
+include_directories("${INCLUDE_DIRECTORIES} ${dap_udp_server_INCLUDE_DIRS}")
 include_directories("${INCLUDE_DIRECTORIES} ${dap_session_INCLUDE_DIRS}")
-add_definitions ("${dap_enc_server_DEFINITIONS}")
-add_definitions ("${dap_http_server_DEFINITIONS}")
-add_definitions ("${dap_udp_server_DEFINITIONS}")
-add_definitions ("${dap_http_DEFINITIONS}")
+include_directories("${INCLUDE_DIRECTORIES} ${dap_stream_INCLUDE_DIRS}")
+
 add_definitions ("${dap_core_DEFINITIONS}")
 add_definitions ("${dap_crypto_DEFINITIONS}")
 add_definitions ("${dap_client_DEFINITIONS}")
+add_definitions ("${dap_enc_server_DEFINITIONS}")
+add_definitions ("${dap_http_server_DEFINITIONS}")
+add_definitions ("${dap_http_DEFINITIONS}")
 #add_definitions ("${dap-chain_DEFINITIONS}")
 add_definitions ("${dap_core_server_DEFINITIONS}")
-add_definitions ("${dap_stream_DEFINITIONS}")
+add_definitions ("${dap_udp_server_DEFINITIONS}")
 add_definitions ("${dap_session_DEFINITIONS}")
-set(SOURCES sources/kelvin-node.c sources/node_manager.c)
+add_definitions ("${dap_stream_DEFINITIONS}")
+
+set(SOURCES sources/kelvin-node.c sources/node_manager.c )
 set(HEADERS sources/node_manager.h)
 
 
 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
-add_executable(${PROJECT_NAME} "sources/kelvin-node.c" ${HEADERS} ${SOURCES})
-target_link_libraries(${PROJECT_NAME} dap_http_server dap_enc_server dap_core_server dap_udp_server dap_client dap_crypto dap_core dap_http dap_session dap_stream  m pthread)
+add_executable(${PROJECT_NAME} "sources/kelvin-node.c" ${HEADERS} ${SOURCES} ${CRYPTO_SRCS})
+target_link_libraries(${PROJECT_NAME} dap_http_server dap_core_server dap_udp_server dap_session dap_crypto  dap_client dap_core dap_http dap_enc_server dap_stream  m pthread)
\ No newline at end of file
diff --git a/libdap b/libdap
index 81377864c37166c8ec9f5e9e02775c05618109f8..d77436785654ce4c10d7b5cdbd22fff3e03665e4 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit 81377864c37166c8ec9f5e9e02775c05618109f8
+Subproject commit d77436785654ce4c10d7b5cdbd22fff3e03665e4
diff --git a/libdap-server b/libdap-server
index 2fa0658778d991f780dd55d7f15d17deb5503070..813167b563e88873dd40bc27b79863586612269f 160000
--- a/libdap-server
+++ b/libdap-server
@@ -1 +1 @@
-Subproject commit 2fa0658778d991f780dd55d7f15d17deb5503070
+Subproject commit 813167b563e88873dd40bc27b79863586612269f
diff --git a/libdap-stream b/libdap-stream
index 3a8672290289cde03708148e8a5300a17ff3906f..f8b3d76ac722aeb31c4af3b99217baa9cdfb2486 160000
--- a/libdap-stream
+++ b/libdap-stream
@@ -1 +1 @@
-Subproject commit 3a8672290289cde03708148e8a5300a17ff3906f
+Subproject commit f8b3d76ac722aeb31c4af3b99217baa9cdfb2486
diff --git a/libdap-stream-ch-vpn b/libdap-stream-ch-vpn
index 722b9ed9866b34c8b117b76a7be61723351d20ad..61d2654814614f695c8abe2d1d8d2c7b1d7bcb40 160000
--- a/libdap-stream-ch-vpn
+++ b/libdap-stream-ch-vpn
@@ -1 +1 @@
-Subproject commit 722b9ed9866b34c8b117b76a7be61723351d20ad
+Subproject commit 61d2654814614f695c8abe2d1d8d2c7b1d7bcb40
diff --git a/sources/kelvin-node.c b/sources/kelvin-node.c
index 447d052365dae57104470538a1c7700954a6a45e..ada6c54a6f674d670efba171cbd71d9322dde124 100644
--- a/sources/kelvin-node.c
+++ b/sources/kelvin-node.c
@@ -17,7 +17,7 @@
     You should have received a copy of the GNU Lesser General Public License
     along with any DAP based project.  If not, see <http://www.gnu.org/licenses/>.
 */
-
+#define DAP_SERVER
 
 #include <errno.h>
 #include <signal.h>
@@ -26,18 +26,32 @@
 #include <string.h>
 #include <unistd.h>
 #include "uthash.h"
-#include "dap_udp_server.h"
-#include "dap_udp_client.h"
 #include "dap_http.h"
 #include "stream.h"
 #include "node_manager.h"
 
 
 
+/*struct ev_loop *repeat_loop;
+ev_timer timeout_watcher;
+
+static void repeat_cb (EV_P_ ev_timer *w, int revents){
+    puts("repeat");
+}*/
+
+
+
 
 
 
 int main(int argc, char **argv) {
+
+   /* repeat_loop = EV_DEFAULT;
+    ev_timer_init (&timeout_watcher, repeat_cb, 3, 3);
+    ev_timer_start (repeat_loop, &timeout_watcher);
+    ev_run (repeat_loop, 0);*/
+
+
     printf("Kelvin Node version 0.1 \n");
     if (argc > 1)
     {        
@@ -45,8 +59,9 @@ int main(int argc, char **argv) {
 
         node_manager_init();
 
-        node_manager_t* manager = new_node_manager(l_config_name);
-        node_manager_start(manager);
+       // node_manager_t* manager = new_node_manager(l_config_name);
+       // node_manager_start(manager);
+       node_manager_start_stream();
 
         node_manager_deinit();
         free(l_config_name);
diff --git a/sources/node_manager.c b/sources/node_manager.c
index ba45c143c4aa0d68bac0d6851b1c8c0201e18f9e..b47181118991b6b690f19e97a513e2029f6b1303 100644
--- a/sources/node_manager.c
+++ b/sources/node_manager.c
@@ -19,34 +19,60 @@
 */
 
 #include "node_manager.h"
+#include "dap_http.h"
+#include "stream.h"
+#include "stream_ch_pkt.h"
 
 #define LOG_TAG "node_manager"
 
 
-void client_new(dap_udp_client_t *client,void * arg){
+void channel_new(struct stream_ch* ch,void* arg){
+    puts("Channel new");
+}
+
+void channel_delete(struct stream_ch* ch,void* arg){
+    puts("Channel delete");
+}
+
+void channel_packet_in(struct stream_ch* ch,void* arg){
+    stream_ch_pkt_t * ch_pkt = arg;
+    char* data = (char*)malloc(ch_pkt->hdr.size);
+    memcpy(data,ch_pkt->data,ch_pkt->hdr.size);
+    printf("Income data: %s from %s \n",data,itoa(ch->stream->conn_udp->host_key));
+    stream_ch_set_ready_to_write(ch,false);
+    stream_ch_pkt_write_f(ch, 1, "ping");
+    stream_ch_set_ready_to_write(ch,true);
+}
+
+void channel_packet_out(struct stream_ch* ch,void* arg){
+    stream_ch_set_ready_to_write(ch,false);
+}
+
+
+void client_new(dap_client_remote_t *client,void * arg){
     printf("Client connected");
 }
 
-void client_read(dap_udp_client_t *client,void * arg){
+void client_read(dap_client_remote_t *client,void * arg){
     printf("Client read \n");
     unsigned char* data = (char*)malloc(client->buf_in_size);
     data[client->buf_in_size] = 0;
     if(client->_ready_to_read)
     {        
-        dap_udp_client_read(client,data,client->buf_in_size);
+        dap_client_read(client,data,client->buf_in_size);
     }
     puts(data);
     char outbox[] = "ping";
-    dap_udp_client_write(client,outbox,strlen(outbox));
+    dap_client_write(client,outbox,strlen(outbox));
     dap_udp_client_ready_to_write(client,true);
     free(data);
 }
 
-void client_write(dap_udp_client_t *client,void * arg){
+void client_write(dap_client_remote_t *client,void * arg){
     printf("Client write");
 }
 
-void client_disconnect(struct dap_client_remote *client,void * arg){
+void client_disconnect(dap_client_remote_t *client,void * arg){
     printf("Client disconnect");
 }
 
@@ -71,14 +97,18 @@ int node_manager_init(){
         log_it(L_CRITICAL,"Can't init encryption key module");
         return -57;
     }
-    if(dap_udp_server_init()!=0){
+    if(dap_server_init()!=0){
         log_it(L_CRITICAL,"Can't init udp server module");
         return -4;
     }
-    if(dap_udp_client_init()!=0){
+    if(dap_client_init()!=0){
         log_it(L_CRITICAL,"Can't init udp client module");
         return -4;
     }
+    stream_init();
+    stream_session_init();
+    dap_http_init();
+    dap_http_simple_module_init();
     return 0;
 }
 
@@ -86,8 +116,9 @@ int node_manager_init(){
  * @brief dap_server_deinit Deinit modules
  */
 void node_manager_deinit(){
-    dap_udp_server_deinit();
-    dap_udp_client_deinit();
+    stream_session_deinit();
+    dap_server_deinit();
+    dap_client_deinit();
     dap_enc_key_deinit();
     dap_enc_deinit();
     common_deinit();
@@ -120,7 +151,7 @@ void node_manager_start(node_manager_t* manager){
         log_it(L_CRITICAL,"Unable to read port value");
         return;
     }
-    dap_udp_server_t* sh = manager->sh;
+    dap_server_t* sh = manager->sh;
     sh = dap_udp_server_listen(port);
     sh->client_read_callback = *client_read;
     sh->client_write_callback = *client_write;
@@ -128,4 +159,13 @@ void node_manager_start(node_manager_t* manager){
     sh->client_delete_callback = *client_disconnect;
     dap_udp_server_loop(sh);
     dap_udp_server_delete(sh);
+
 }
+
+void node_manager_start_stream(){
+    dap_server_t* server = dap_server_listen("localhost",56001,DAP_SERVER_TCP);
+    dap_http_new(server,"HTTP-serv");
+    enc_http_add_proc(DAP_HTTP(server),"/handshake");
+    dap_server_loop(server);
+}
+
diff --git a/sources/node_manager.h b/sources/node_manager.h
index 31733d60306a35b321d5e3fb9dcbd6e0fbb01dd1..6dc015a99aff26f8f0e3501aa1f252b0de11395d 100644
--- a/sources/node_manager.h
+++ b/sources/node_manager.h
@@ -25,16 +25,17 @@
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
-#include "dap_udp_server.h"
-#include "dap_udp_client.h"
+#include "dap_server.h"
 #include "dap_common.h"
 #include "dap_config.h"
+#include "dap_udp_server.h"
+#include "dap_udp_client.h"
 #include "dap_enc.h"
 #include "dap_enc_key.h"
 
 
 typedef struct node_manager{
-    dap_udp_server_t* sh;
+    dap_server_t* sh;
     dap_config_t *l_config;
 
 } node_manager_t;