diff --git a/.gitmodules b/.gitmodules
index 513216fa884eca8b1a0867097a9d32d4d638955d..c18a7924bb1c752967fb12c55b0ae63ee69b2d46 100755
--- a/.gitmodules
+++ b/.gitmodules
@@ -5,7 +5,7 @@
 
 [submodule "libdap-crypto"]
 	path = libdap-crypto
-	url = https://github.com/kelvinblockchain/libdap-crypto
+	url = https://github.com/cellframe/libdap-crypto
 	branch = master
 
 [submodule "test/libdap-test"]
diff --git a/.travis.yml b/.travis.yml
index efab93726296244c6b8851580d49e7a011a94bbb..94bd230104643a84ef35392c858f6fa1f109845c 100755
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,7 @@ notifications:
 
 before_install:
     - git submodule init
-    - git submodule update --recursive
+    - git submodule update
 
 script:
     - mkdir build
@@ -20,5 +20,5 @@ addons:
     sources:
     - ubuntu-toolchain-r-test
     packages:
-    - libev-dev
-
+    - libev-dev 
+    - libmemcached-dev
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 223f7fda03d4307b77dfeb1a6d143e50c98bcd7f..f9f5d920628a73b0670d8e44b46a8cd428663aea 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,29 +1,31 @@
 cmake_minimum_required(VERSION 3.0)
-
-if(TARGET dap_core_server)
-    return() # The project has already been built.
-endif()
-
-project (dap_core_server C)
-set(CMAKE_C_STANDARD 11)
-
+project(dap_server_core)
 add_definitions ("-D_GNU_SOURCE")
 
 if(NOT (${SUBMODULES_NO_BUILD} MATCHES ON))
+    set(SUBMODULES_NO_BUILD ON)
     if ( NOT ( TARGET dap_core ) )
         add_subdirectory(libdap)
     endif()
+
     if ( NOT ( TARGET dap_crypto ) )
         add_subdirectory(libdap-crypto)
     endif()
-    enable_testing()
-    add_subdirectory(test)
+
 endif()
 
-file(GLOB CORE_SERVER_SOURCES *.c)
-file(GLOB CORE_SERVER_HEADERS *.h)
+file(GLOB DAP_SERVER_CORE_SOURCES src/*.c)
+file(GLOB DAP_SERVER_CORE_HEADERS include/*.h)
+
+add_library(${PROJECT_NAME} STATIC ${DAP_SERVER_CORE_HEADERS} ${DAP_SERVER_CORE_SOURCES})
+
+target_link_libraries(${PROJECT_NAME} dap_test dap_core dap_crypto pthread memcached ev)
+target_include_directories(${PROJECT_NAME} PUBLIC include)
+target_include_directories(${PROJECT_NAME} PRIVATE src)
+
 
-add_library(${PROJECT_NAME} STATIC ${CORE_SERVER_SOURCES} ${CORE_SERVER_HEADERS})
+if (${BUILD_DAP_SERVER_CORE_TESTS} MATCHES ON)
+    enable_testing()
+    add_subdirectory(test)
+endif()
 
-target_link_libraries(${PROJECT_NAME} pthread ev memcached dap_core dap_crypto)
-target_include_directories(${PROJECT_NAME} INTERFACE .)
diff --git a/dap_client_remote.h b/include/dap_client_remote.h
similarity index 100%
rename from dap_client_remote.h
rename to include/dap_client_remote.h
diff --git a/dap_events.h b/include/dap_events.h
similarity index 100%
rename from dap_events.h
rename to include/dap_events.h
diff --git a/dap_events_socket.h b/include/dap_events_socket.h
similarity index 100%
rename from dap_events_socket.h
rename to include/dap_events_socket.h
diff --git a/dap_memcached.h b/include/dap_memcached.h
similarity index 100%
rename from dap_memcached.h
rename to include/dap_memcached.h
diff --git a/dap_server.h b/include/dap_server.h
similarity index 100%
rename from dap_server.h
rename to include/dap_server.h
diff --git a/dap_traffic_track.h b/include/dap_traffic_track.h
similarity index 100%
rename from dap_traffic_track.h
rename to include/dap_traffic_track.h
diff --git a/libdap b/libdap
index d37b2aa26d2a7cc068529db343a87fd728904d33..4ab41cdcaa8087323652cd5fef702876ccc25dab 160000
--- a/libdap
+++ b/libdap
@@ -1 +1 @@
-Subproject commit d37b2aa26d2a7cc068529db343a87fd728904d33
+Subproject commit 4ab41cdcaa8087323652cd5fef702876ccc25dab
diff --git a/libdap-crypto b/libdap-crypto
new file mode 160000
index 0000000000000000000000000000000000000000..ff63d762657f9687173db825705b8bf4b958abee
--- /dev/null
+++ b/libdap-crypto
@@ -0,0 +1 @@
+Subproject commit ff63d762657f9687173db825705b8bf4b958abee
diff --git a/dap_client_remote.c b/src/dap_client_remote.c
similarity index 100%
rename from dap_client_remote.c
rename to src/dap_client_remote.c
diff --git a/dap_events.c b/src/dap_events.c
similarity index 100%
rename from dap_events.c
rename to src/dap_events.c
diff --git a/dap_events_socket.c b/src/dap_events_socket.c
similarity index 100%
rename from dap_events_socket.c
rename to src/dap_events_socket.c
diff --git a/dap_memcached.c b/src/dap_memcached.c
similarity index 100%
rename from dap_memcached.c
rename to src/dap_memcached.c
diff --git a/dap_server.c b/src/dap_server.c
similarity index 100%
rename from dap_server.c
rename to src/dap_server.c
diff --git a/dap_traffic_track.c b/src/dap_traffic_track.c
similarity index 100%
rename from dap_traffic_track.c
rename to src/dap_traffic_track.c
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index e1e3b653959dcecd6e66c38f17c9b366e73e741b..7fee4a549500b7577e3379475ff586b14d01a1c6 100755
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,18 +1,18 @@
-if(TARGET core_server_test)
-    return() # The project has already been built.
-endif()
-project(core_server_test)
+project(server_core_test)
+
 
-add_subdirectory(libdap-test)
+if ( NOT ( TARGET dap_test ) )
+    add_subdirectory(libdap-test)
+endif()
 
-file(GLOB SOURCES *.c)
-file(GLOB HEADERS *.h)
+file(GLOB DAP_SERVER_CORE_TEST_SOURCES *.c)
+file(GLOB DAP_SERVER_CORE_TEST_HEADERS *.h)
 
-add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})
+add_executable(${PROJECT_NAME} ${DAP_SERVER_CORE_TEST_SOURCES} ${DAP_SERVER_CORE_TEST_HEADERS})
 
-target_link_libraries(${PROJECT_NAME} dap_test dap_core_server ev)
+target_link_libraries(${PROJECT_NAME} dap_test dap_core dap_crypto dap_server_core ev)
 
 add_test(
-    NAME core_server_test
-    COMMAND core_server_test
+    NAME server_core_test
+    COMMAND server_core_test
 )
diff --git a/test/main.c b/test/main.c
index 8a591c1b73cf69d323131cdc3271745a2f8c1d86..f63b31953d8adc941890bbe12dc8eeef1112436b 100755
--- a/test/main.c
+++ b/test/main.c
@@ -1,9 +1,9 @@
 #include "dap_common.h"
 #include "dap_traffic_track_test.h"
 
-int main(void) {
+int main(int argc, const char * argv[]) {
     // switch off debug info from library
-//    set_log_level(L_CRITICAL);
-//    dap_traffic_track_tests_run();
+    //dap_log_level_set(L_CRITICAL);
+    //dap_traffic_track_tests_run();
     return 0;
 }