diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..2f5b73f
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,48 @@
+if(OV_DISABLE_GTK)
+ message(STATUS "Skipping Plugins: Simple Visualization, no GTK")
+ return()
+endif(OV_DISABLE_GTK)
+
+project(openvibe-plugins-tactile-bci VERSION ${OPENVIBE_MAJOR_VERSION}.${OPENVIBE_MINOR_VERSION}.${OPENVIBE_PATCH_VERSION})
+
+file(GLOB_RECURSE SRC_FILES src/*.cpp src/*.h src/*.inl)
+
+add_library(${PROJECT_NAME} SHARED ${SRC_FILES})
+
+target_link_libraries(${PROJECT_NAME}
+ openvibe
+ openvibe-common
+ openvibe-toolkit
+ openvibe-module-ebml
+ openvibe-module-system
+ openvibe-visualization-toolkit
+)
+
+set_target_properties(${PROJECT_NAME} PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION ${PROJECT_VERSION_MAJOR}
+ FOLDER ${PLUGINS_FOLDER}
+ COMPILE_FLAGS "-DOVP_Exports -DOVP_Shared")
+
+add_definitions(-DTARGET_HAS_ThirdPartyOpenViBEPluginsGlobalDefines)
+add_definitions(-DBOOST_DATE_TIME_NO_LIB)
+if(WIN32)
+ add_definitions(-D_WIN32_WINNT=0x0501)
+endif(WIN32)
+
+include("FindOpenViBEModuleTCPTagging")
+include("FindThirdPartyGTK")
+# need boost for UDPStimcodeSender
+include("FindThirdPartyBoost")
+include("FindThirdPartyBoost_System")
+
+# -----------------------------
+# Install files
+# -----------------------------
+install(TARGETS ${PROJECT_NAME}
+ RUNTIME DESTINATION ${DIST_BINDIR}
+ LIBRARY DESTINATION ${DIST_LIBDIR}
+ ARCHIVE DESTINATION ${DIST_LIBDIR})
+
+install(DIRECTORY scenarios/ DESTINATION ${DIST_DATADIR}/openvibe/scenarios/tactile-bci)
+
diff --git a/OV_TACTILE_CHANGELOG.txt b/OV_TACTILE_CHANGELOG.txt
new file mode 100644
index 0000000..a7ed372
--- /dev/null
+++ b/OV_TACTILE_CHANGELOG.txt
@@ -0,0 +1,32 @@
+05.02.2022:
+-->die verschiedenen repositories zu einem zusammengefasst
+
+29.01.2022:
+Änderungen an den Szenarios:
+1.Szenario Acquisition:
+-->Die Filterung des Signals erfolgt jetzt hier, statt in den Szenarien für die filterkonfiguration
+-->In der UI des Szenarios gibt es jetzt einen zweiten reiter zur anzeige des EEG-Signals
+
+2.Szenario Train xDAWN:
+-->Das aufgezeichnete signal ist jetzt bereits gefiltert, dementsprechend entfällt die filterung hier
+
+3.Szenario Train p300-classifier:
+-->Das aufgezeichnete signal ist jetzt bereits gefiltert, dementsprechend entfällt die filterung hier
+
+4.Szenario Online:
+-->Analog zu acquisition wird auch hier das gefilterte signal aufgezeichnet und nicht mehr das ungefilterte
+-->Auch hier lässt sich jetzt in einem zusätzlichen Reiter das EEG Signal anzeigen
+
+Änderungen an Scripts:
+p300-tactile-stimulator.lua:
+-->Da die Box derzeit keinen Input hat, wurde eine Zeile entfernt, welche die letzten erhaltenen daten löscht
+
+Änderungen an der UDPSender Box:
+-->Die weitergabe der Daten am boxoutput wurde verändert, um ein timingproblem zu beheben
+
+Änderungen im OpenVibe Sourcecode:
+C:\BCI\Bachelorarbeit\OV_TACTILE\meta\sdk\plugins\processing\signal-processing\src\box-algorithms\ovpCBoxAlgorithmXDAWNTrainer.cpp:
+-->Z.338-339 geändert, damit die cfg mit gültigen werten gefüllt wird: fprintf(file, "\t%u\n", (unsigned int)m_filterDim);
+ fprintf(file, "\t%u\n", (unsigned int)nChannel);
+
+Änderungen an den Launchscripts: