diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..85477867ff7703065631f66e97a51ff62f794855
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,9 @@
+[submodule "libdap-server-core"]
+	path = libdap-server-core
+	url = https://gitlab.demlabs.net/cellframe/libdap-server-core.git
+[submodule "libdap"]
+	path = libdap
+	url = https://gitlab.demlabs.net/cellframe/libdap.git
+[submodule "libdap-crypto"]
+	path = libdap-crypto
+	url = https://gitlab.demlabs.net/cellframe/libdap-crypto.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6a66d475f8402da328d01ea875842053c25654c4
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,49 @@
+project(dap_server_core_python_module C)
+cmake_minimum_required(VERSION 2.8)
+
+set(CMAKE_VERBOSE_MAKEFILE ON)
+set(CMAKE_COLOR_MAKEFILE   ON)
+set(CMAKE_C_STANDARD 11)
+set(SUBMODULES_NO_BUILD ON)
+
+add_subdirectory(libdap)
+add_subdirectory(libdap-crypto)
+add_subdirectory(libdap-server-core)
+
+file(GLOB SERVER_CORE_PYTHON_SRCS src/*.c)
+file(GLOB SERVER_CORE_PYTHON_HEADERS include/*.h)
+
+set(Python_ADDITIONAL_VERSIONS 3.7)
+find_package (PythonLibs REQUIRED)
+#find_package(PkgConfig)
+#pkg_check_modules(PC_JSON-C REQUIRED json-c)
+include_directories(${PYTHON_INCLUDE_DIR} include/)
+
+add_library(${PROJECT_NAME} SHARED ${SERVER_CORE_PYTHON_SRCS} ${SERVER_CORE_PYTHON_HEADERS})
+
+target_link_libraries(${PROJECT_NAME})
+
+target_compile_options(
+    dap_server_core PRIVATE
+    "-fpic"
+)
+
+target_compile_options(
+    dap_core PRIVATE
+    "-fpic"
+)
+target_compile_options(
+    dap_crypto PRIVATE
+    "-fpic"
+)
+
+
+#target_link_libraries(${PROJECT_NAME} dap_core dap_crypto)
+#targat_link_libraries(${PROJECT_NAME} dap_server_core)
+target_link_libraries(${PROJECT_NAME} dap_core dap_crypto dap_server_core)
+
+#if(BUILD_DAP_PYTHON_TESTS)
+#    add_subdirectory(test)
+#    enable_testing()
+#endif()
+
diff --git a/include/libdap-server-core-python.h b/include/libdap-server-core-python.h
new file mode 100644
index 0000000000000000000000000000000000000000..87b2402acc83ed7416a744efcc8eb2937bca3231
--- /dev/null
+++ b/include/libdap-server-core-python.h
@@ -0,0 +1,36 @@
+#define PY_SSIZE_T_CLEAN
+#include "Python.h"
+#include "dap_server.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+static PyObject *dap_server_core_init(PyObject *self, PyObject *args);
+static PyObject *dap_server_core_deinit();
+
+static PyMethodDef DapServerCorePythonMethods[] = {
+        {"init", dap_server_core_init, METH_VARARGS, "Initialization of the DAP (Deus Applicaions Prototypes) server core library"},
+        {"deinit", dap_server_core_deinit, METH_NOARGS, "Deinitialization of the DAP (Deus Applicaions Prototypes) server core library"},
+        {NULL, NULL, 0, NULL}
+};
+
+static struct PyModuleDef dapservercorepythonmodule = {
+        PyModuleDef_HEAD_INIT,
+        "libdap_python_module",   /* name of module */
+        NULL, /* module documentation, may be NULL */
+        -1,       /* size of per-interpreter state of the module,
+                 or -1 if the module keeps state in global variables. */
+        DapServerCorePythonMethods
+};
+
+PyMODINIT_FUNC PyInit_libdap_server_core_python_module(void);
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
diff --git a/libdap b/libdap
new file mode 160000
index 0000000000000000000000000000000000000000..67993d1f4cec44de464acee32a4d4f71d51c7e7d
--- /dev/null
+++ b/libdap
@@ -0,0 +1 @@
+Subproject commit 67993d1f4cec44de464acee32a4d4f71d51c7e7d
diff --git a/libdap-crypto b/libdap-crypto
new file mode 160000
index 0000000000000000000000000000000000000000..6249887fdd5c9ed88eb26c1e10f853ea9f7001b6
--- /dev/null
+++ b/libdap-crypto
@@ -0,0 +1 @@
+Subproject commit 6249887fdd5c9ed88eb26c1e10f853ea9f7001b6
diff --git a/libdap-server-core b/libdap-server-core
new file mode 160000
index 0000000000000000000000000000000000000000..6778521f9f646e2985994e63f470067b3e2c1e48
--- /dev/null
+++ b/libdap-server-core
@@ -0,0 +1 @@
+Subproject commit 6778521f9f646e2985994e63f470067b3e2c1e48
diff --git a/src/libdap-server-core-python.c b/src/libdap-server-core-python.c
new file mode 100644
index 0000000000000000000000000000000000000000..431db0e350e6f8983d4ee6014162a4ce4ffedbe2
--- /dev/null
+++ b/src/libdap-server-core-python.c
@@ -0,0 +1,38 @@
+#include "libdap-server-core-python.h"
+
+
+static PyObject *dap_server_core_init(PyObject *self, PyObject *args){
+    return PyLong_FromLong(0);
+}
+static PyObject *dap_server_core_deinit(){
+    return PyLong_FromLong(0);
+}
+
+PyMODINIT_FUNC PyInit_libdap_server_core_python_module(void){
+    return PyModule_Create(&dapservercorepythonmodule);
+}
+
+int main(int argc, char **argv) {
+    wchar_t *program = Py_DecodeLocale(argv[0], NULL);
+    if (program == NULL) {
+        fprintf(stderr, "Fatal error: cannot decode argv[0]\n");
+        exit(1);
+    }
+
+    /* Add a built-in module, before Py_Initialize */
+    PyImport_AppendInittab("libdap_server_core_python_module", PyInit_libdap_server_core_python_module);
+
+    /* Pass argv[0] to the Python interpreter */
+    Py_SetProgramName(program);
+
+    /* Initialize the Python interpreter.  Required. */
+    Py_Initialize();
+
+    /* Optionally import the module; alternatively,
+       import can be deferred until the embedded script
+       imports it. */
+    PyImport_ImportModule("libdap_server_core_python_module");
+
+    PyMem_RawFree(program);
+    return 0;
+}