diff --git a/core_server/CMakeLists.txt b/core_server/CMakeLists.txt
index 9bf1a95603ac36061dddaadf86c2df47c6fb7918..573aa3e7d103cd98a08263d56b431895e6dd2b62 100644
--- a/core_server/CMakeLists.txt
+++ b/core_server/CMakeLists.txt
@@ -3,26 +3,22 @@ project (dap_core_server C)
 
 set(DAP_CORE_SERVER_SRCS
     dap_server.c
-    client/dap_client.c
-    client/dap_client_internal.c
-    client/dap_client_remote.c)
+    dap_client/dap_client.c
+    dap_client/dap_client_internal.c
+    dap_client/dap_client_remote.c)
 
-include_directories(client)
-include_directories("${INCLUDE_DIRECTORIES} ${dap_client_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_core_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_crypto_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_enc_server_INCLUDE_DIRS}")
+set(DAP_CORE_SERVER_HEADERS
+    dap_server.h
+    dap_client/dap_client.h
+    dap_client/dap_client_internal.h
+    dap_client/dap_client_remote.h)
 
-add_definitions ("${dap_client_DEFINITIONS}")
-add_definitions ("${dap_core_DEFINITIONS}")
-add_definitions ("${dap_crypto_DEFINITIONS}")
-add_definitions ("${dap_enc_server_DEFINITIONS}")
+include_directories(dap_client)
 
-add_library(${PROJECT_NAME} STATIC ${DAP_CORE_SERVER_SRCS})
+add_library(${PROJECT_NAME} STATIC ${DAP_CORE_SERVER_SRCS} ${DAP_CORE_SERVER_HEADERS})
+
+target_include_directories(dap_core_server INTERFACE .)
+target_include_directories(dap_core_server INTERFACE dap_client)
 
 target_link_libraries(dap_core_server dap_core)
 target_link_libraries(dap_core_server dap_crypto)
-
-set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
-
-set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE)
diff --git a/core_server/client/(DELETE)CMakeLists.txt b/core_server/dap_client/(DELETE)CMakeLists.txt
similarity index 100%
rename from core_server/client/(DELETE)CMakeLists.txt
rename to core_server/dap_client/(DELETE)CMakeLists.txt
diff --git a/core_server/client/client.pri b/core_server/dap_client/client.pri
similarity index 100%
rename from core_server/client/client.pri
rename to core_server/dap_client/client.pri
diff --git a/core_server/client/dap_client.c b/core_server/dap_client/dap_client.c
similarity index 100%
rename from core_server/client/dap_client.c
rename to core_server/dap_client/dap_client.c
diff --git a/core_server/client/dap_client.h b/core_server/dap_client/dap_client.h
similarity index 100%
rename from core_server/client/dap_client.h
rename to core_server/dap_client/dap_client.h
diff --git a/core_server/client/dap_client_internal.c b/core_server/dap_client/dap_client_internal.c
similarity index 100%
rename from core_server/client/dap_client_internal.c
rename to core_server/dap_client/dap_client_internal.c
diff --git a/core_server/client/dap_client_internal.h b/core_server/dap_client/dap_client_internal.h
similarity index 100%
rename from core_server/client/dap_client_internal.h
rename to core_server/dap_client/dap_client_internal.h
diff --git a/core_server/client/dap_client_remote.c b/core_server/dap_client/dap_client_remote.c
similarity index 100%
rename from core_server/client/dap_client_remote.c
rename to core_server/dap_client/dap_client_remote.c
diff --git a/core_server/client/dap_client_remote.h b/core_server/dap_client/dap_client_remote.h
similarity index 100%
rename from core_server/client/dap_client_remote.h
rename to core_server/dap_client/dap_client_remote.h
diff --git a/core_server/client/sxmlc/sxmlc.c b/core_server/dap_client/sxmlc/sxmlc.c
similarity index 100%
rename from core_server/client/sxmlc/sxmlc.c
rename to core_server/dap_client/sxmlc/sxmlc.c
diff --git a/core_server/client/sxmlc/sxmlc.h b/core_server/dap_client/sxmlc/sxmlc.h
similarity index 100%
rename from core_server/client/sxmlc/sxmlc.h
rename to core_server/dap_client/sxmlc/sxmlc.h
diff --git a/core_server/client/sxmlc/sxmlsearch.c b/core_server/dap_client/sxmlc/sxmlsearch.c
similarity index 100%
rename from core_server/client/sxmlc/sxmlsearch.c
rename to core_server/dap_client/sxmlc/sxmlsearch.c
diff --git a/core_server/client/sxmlc/sxmlsearch.h b/core_server/dap_client/sxmlc/sxmlsearch.h
similarity index 100%
rename from core_server/client/sxmlc/sxmlsearch.h
rename to core_server/dap_client/sxmlc/sxmlsearch.h
diff --git a/core_server/dap_server.h b/core_server/dap_server.h
index b0932a75efd74f3e03936a594f22957d2323ebe8..2909b798c69478e844f20ea9309cae2603efd935 100644
--- a/core_server/dap_server.h
+++ b/core_server/dap_server.h
@@ -27,7 +27,7 @@
 #include <pthread.h>
 #include "uthash.h"
 
-#include "client/dap_client_remote.h"
+#include "dap_client_remote.h"
 
 typedef enum dap_server_type {DAP_SERVER_TCP} dap_server_type_t;
 
diff --git a/enc_server/CMakeLists.txt b/enc_server/CMakeLists.txt
index d3890809d847f5715cfe4973405ac43d0007547c..33101a4a4d87ccd0b4444407d16a0349d23bb36b 100644
--- a/enc_server/CMakeLists.txt
+++ b/enc_server/CMakeLists.txt
@@ -20,8 +20,8 @@ add_definitions ("${dap_core_server_DEFINITIONS}")
 add_definitions ("${dap_http_server_DEFINITIONS}")
 
 add_library(${PROJECT_NAME} STATIC ${DAP_ENC_SERVER_SRCS})
-set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
-
-set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE)
 
+target_link_libraries(dap_enc_server dap_http_server)
 target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_core_server dap_http_server)
+
+target_include_directories(dap_core_server INTERFACE .)
diff --git a/http_server/CMakeLists.txt b/http_server/CMakeLists.txt
index 9620a36661d1cc7a1ea06b413dee94aca6f6c12d..ea30109c286bcc5e421edad2b08fd153df7822b4 100644
--- a/http_server/CMakeLists.txt
+++ b/http_server/CMakeLists.txt
@@ -29,8 +29,11 @@ add_definitions ("${dap_core_server_DEFINITIONS}")
 
 add_library(${PROJECT_NAME} STATIC ${HTTP_SERVER_SRCS})
 
+target_include_directories(dap_core_server INTERFACE . http_client)
+
 target_link_libraries(dap_http_server dap_core)
 target_link_libraries(dap_http_server dap_crypto)
+target_link_libraries(dap_http_server dap_core_server)
 
-set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
-set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE)
+#set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
+#set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE)
diff --git a/http_server/dap_http.c b/http_server/dap_http.c
index 025081ffc6b6e40b257626e5560d8b557b1c56e7..ffc67af63c7041bbf3ffde69eccc2f46685ea6a8 100644
--- a/http_server/dap_http.c
+++ b/http_server/dap_http.c
@@ -37,7 +37,8 @@
 #include <netdb.h>
 
 #include "dap_common.h"
-#include "../core_server/client/dap_client.h"
+
+#include "dap_client.h"
 #include "dap_server.h"
 
 #include "dap_http.h"
diff --git a/http_server/dap_http.h b/http_server/dap_http.h
index ab55a272cf0f1cf32fb5b037a4b4a6f27395f99c..52a92dcdb3907568f219cef629c22ef65e420f5c 100644
--- a/http_server/dap_http.h
+++ b/http_server/dap_http.h
@@ -21,7 +21,7 @@
 #ifndef _SERVER_HTTP_H_
 #define _SERVER_HTTP_H_
 #include "dap_server.h"
-#include "../core_server/client/dap_client.h"
+#include "dap_client.h"
 #include "http_client/dap_http_header.h"
 #include "http_client/dap_http_client.h"
 #include "uthash.h"
diff --git a/udp_server/CMakeLists.txt b/udp_server/CMakeLists.txt
index a15b9168a9df2dfa5990aaea691ac9fbecdabea1..c9e70e6e76472a9de618b12a1c0347daee71fbc5 100644
--- a/udp_server/CMakeLists.txt
+++ b/udp_server/CMakeLists.txt
@@ -3,21 +3,12 @@ project (dap_udp_server C)
   
 set(DAP_UDP_SERVER_SRCS  dap_udp_server.c dap_udp_client.h dap_udp_client.c)
 
-include_directories("${INCLUDE_DIRECTORIES} ${dap_core_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_crypto_INCLUDE_DIRS}")
-include_directories("${INCLUDE_DIRECTORIES} ${dap_client_INCLUDE_DIRS}")
-
-
 add_definitions ("${dap_core_DEFINITIONS}")
 add_definitions ("${dap_crypto_DEFINITIONS}")
 add_definitions ("${dap_client_DEFINITIONS}")
 
-
 add_library(${PROJECT_NAME} STATIC ${DAP_UDP_SERVER_SRCS})
 
-target_link_libraries(dap_udp_server dap_core)
-#target_link_libraries(dap_http_server dap_crypto)
-
-set(${PROJECT_NAME}_DEFINITIONS CACHE INTERNAL "${PROJECT_NAME}: Definitions" FORCE)
+target_link_libraries(dap_udp_server dap_core dap_core_server)
 
-set(${PROJECT_NAME}_INCLUDE_DIRS ${PROJECT_SOURCE_DIR} CACHE INTERNAL "${PROJECT_NAME}: Include Directories" FORCE)
+target_include_directories(dap_core_server INTERFACE .)
diff --git a/udp_server/dap_udp_client.h b/udp_server/dap_udp_client.h
index 1206fc0a918592b58744331d6e974d146bdad67a..4f981d3cc75101a9ecb52818551b986ddb45070f 100644
--- a/udp_server/dap_udp_client.h
+++ b/udp_server/dap_udp_client.h
@@ -27,7 +27,7 @@
 #include <stdbool.h>
 #include <sys/queue.h>
 #include "uthash.h"
-#include "../core_server/client/dap_client_remote.h"
+#include "dap_client_remote.h"
 #include <ev.h>
 
 
diff --git a/udp_server/dap_udp_server.h b/udp_server/dap_udp_server.h
index 364e786d8ccadcdf437c35598fc2d6cfba4c044b..9aa180b12e53b4510d8d74de268c8db7e842a9c9 100644
--- a/udp_server/dap_udp_server.h
+++ b/udp_server/dap_udp_server.h
@@ -31,8 +31,8 @@
 #include <sys/select.h>
 #include <sys/queue.h>
 #include "dap_udp_client.h"
-#include "../../libdap-server/core_server/dap_server.h"
-#include "../core_server/client/dap_client_remote.h"
+#include "dap_server.h"
+#include "dap_client_remote.h"
 
 struct dap_udp_server;