diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9bd48f15e13f381987fa6d1a4f2c3c146967f93d..54f5cb6d417682a962a23ac5fd04d9c89bca3522 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,10 +25,12 @@ set(CMAKE_CXX_FLAGS_RELEASE "-Ofast")
 include_directories(fmt/include)
 include_directories(common/include)
 include_directories(reading_machine/include)
+include_directories(torch_modules/include)
 include_directories(utf8)
 
 add_subdirectory(fmt)
 add_subdirectory(common)
 add_subdirectory(dev)
 add_subdirectory(reading_machine)
+add_subdirectory(torch_modules)
 
diff --git a/reading_machine/include/Classifier.hpp b/reading_machine/include/Classifier.hpp
index 24cc9aa825dba2fd3db4fc2a391b1d5e12104a4d..41cac659cc109d9aa11a587d6f25d01ab8b0b3a3 100644
--- a/reading_machine/include/Classifier.hpp
+++ b/reading_machine/include/Classifier.hpp
@@ -2,6 +2,7 @@
 #define CLASSIFIER__H
 
 #include <string>
+#include <torch/torch.h>
 #include "TransitionSet.hpp"
 
 class Classifier
diff --git a/torch_modules/CMakeLists.txt b/torch_modules/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..6ccb7ce66ef9df5455c34e29f54169ed36f2e7d6
--- /dev/null
+++ b/torch_modules/CMakeLists.txt
@@ -0,0 +1,4 @@
+FILE(GLOB SOURCES src/*.cpp)
+
+add_library(torch_modules STATIC ${SOURCES})
+target_link_libraries(torch_modules "${TORCH_LIBRARIES}")
diff --git a/torch_modules/include/MLP.hpp b/torch_modules/include/MLP.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..ddbd44fee79bda0ceb2c518bfb500afd2a8a655b
--- /dev/null
+++ b/torch_modules/include/MLP.hpp
@@ -0,0 +1,9 @@
+#ifndef MLP__H
+#define MLP__H
+
+class MLPImpl
+{
+
+};
+
+#endif
diff --git a/torch_modules/src/MLP.cpp b/torch_modules/src/MLP.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..0a5a3201bbd1a1d99fb99ef97be0bf92528e8052
--- /dev/null
+++ b/torch_modules/src/MLP.cpp
@@ -0,0 +1 @@
+#include "MLP.hpp"