diff --git a/Device/Data/Datafield.cpp b/Device/Data/Datafield.cpp
index af0c47bde4a990a3a80362ca1bb503c689b7fd60..4309b20f3741dfaadbc35941387f3b80bacf6a82 100644
--- a/Device/Data/Datafield.cpp
+++ b/Device/Data/Datafield.cpp
@@ -206,8 +206,8 @@ Datafield* Datafield::crop(double xmin, double xmax) const
 
 #ifdef BORNAGAIN_PYTHON
 
-#include "PyTools/Embed/PyObjectDecl.h"
-#include "PyTools/Embed/PythonInterpreter.h" // Numpy::arrayND, Numpy::getDataPtr
+#include "PyCore/Embed/PyObjectDecl.h"
+#include "PyCore/Embed/PythonInterpreter.h" // Numpy::arrayND, Numpy::getDataPtr
 
 template <>
 PyObject* OutputData<double>::getArray() const
diff --git a/GUI/View/Project/PyImportAssistant.cpp b/GUI/View/Project/PyImportAssistant.cpp
index 97f2052015579fb95beac53c8ab1454f03e4529a..d7bf56269cebdba2d749bd82090733159224fadf 100644
--- a/GUI/View/Project/PyImportAssistant.cpp
+++ b/GUI/View/Project/PyImportAssistant.cpp
@@ -30,8 +30,8 @@
 #include "GUI/View/Project/ProjectManager.h"
 #include "GUI/View/Tool/Globals.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "PyTools/Embed/PythonInterpreter.h"  // listOfFunctions
-#include "PyTools/Sample/Multilayer/ImportMultiLayer.h"  // createMultiLayerFromPython
+#include "PyCore/Embed/PythonInterpreter.h"  // listOfFunctions
+#include "PyCore/Sample/Multilayer/ImportMultiLayer.h"  // createMultiLayerFromPython
 #include <QApplication>
 #include <QFileDialog>
 #include <QTextStream>
diff --git a/PyTools/CMakeLists.txt b/PyCore/CMakeLists.txt
similarity index 100%
rename from PyTools/CMakeLists.txt
rename to PyCore/CMakeLists.txt
diff --git a/PyTools/Embed/Makefile b/PyCore/Embed/Makefile
similarity index 100%
rename from PyTools/Embed/Makefile
rename to PyCore/Embed/Makefile
diff --git a/PyTools/Embed/PyCore.h b/PyCore/Embed/PyCore.h
similarity index 97%
rename from PyTools/Embed/PyCore.h
rename to PyCore/Embed/PyCore.h
index 933c85ea937210a7cdd8c475c76b2b6115842b57..10533b160a04d1f6e3a8e8c4ed661289aba5901a 100644
--- a/PyTools/Embed/PyCore.h
+++ b/PyCore/Embed/PyCore.h
@@ -2,7 +2,7 @@
 //
 //  BornAgain: simulate and fit reflection and scattering
 //
-//! @file      PyTools/Embed/PyCore.h
+//! @file      PyCore/Embed/PyCore.h
 //! @brief     Includes python header and takes care of warnings.
 //!
 //! @homepage  http://www.bornagainproject.org
diff --git a/PyTools/Embed/PyObjectDecl.h b/PyCore/Embed/PyObjectDecl.h
similarity index 100%
rename from PyTools/Embed/PyObjectDecl.h
rename to PyCore/Embed/PyObjectDecl.h
diff --git a/PyTools/Embed/PyObjectPtr.cpp b/PyCore/Embed/PyObjectPtr.cpp
similarity index 100%
rename from PyTools/Embed/PyObjectPtr.cpp
rename to PyCore/Embed/PyObjectPtr.cpp
diff --git a/PyTools/Embed/PyObjectPtr.h b/PyCore/Embed/PyObjectPtr.h
similarity index 100%
rename from PyTools/Embed/PyObjectPtr.h
rename to PyCore/Embed/PyObjectPtr.h
diff --git a/PyTools/Embed/PythonInterpreter.cpp b/PyCore/Embed/PythonInterpreter.cpp
similarity index 100%
rename from PyTools/Embed/PythonInterpreter.cpp
rename to PyCore/Embed/PythonInterpreter.cpp
diff --git a/PyTools/Embed/PythonInterpreter.h b/PyCore/Embed/PythonInterpreter.h
similarity index 100%
rename from PyTools/Embed/PythonInterpreter.h
rename to PyCore/Embed/PythonInterpreter.h
diff --git a/PyTools/Embed/Result.cpp b/PyCore/Embed/Result.cpp
similarity index 100%
rename from PyTools/Embed/Result.cpp
rename to PyCore/Embed/Result.cpp
diff --git a/PyTools/Embed/Result.h b/PyCore/Embed/Result.h
similarity index 100%
rename from PyTools/Embed/Result.h
rename to PyCore/Embed/Result.h
diff --git a/PyTools/Sample/CMakeLists.txt b/PyCore/Sample/CMakeLists.txt
similarity index 100%
rename from PyTools/Sample/CMakeLists.txt
rename to PyCore/Sample/CMakeLists.txt
diff --git a/PyTools/Sample/Multilayer/ImportMultiLayer.cpp b/PyCore/Sample/Multilayer/ImportMultiLayer.cpp
similarity index 95%
rename from PyTools/Sample/Multilayer/ImportMultiLayer.cpp
rename to PyCore/Sample/Multilayer/ImportMultiLayer.cpp
index 53c7f15d5d2ab1870cfc4c697655a62a0ef08a0a..4da4157ac2446c39b6784c31998b627104605b01 100644
--- a/PyTools/Sample/Multilayer/ImportMultiLayer.cpp
+++ b/PyCore/Sample/Multilayer/ImportMultiLayer.cpp
@@ -1,9 +1,9 @@
 #ifdef BORNAGAIN_PYTHON
 
-#include "PyTools/Embed/PyCore.h"
+#include "PyCore/Embed/PyCore.h"
 #include "ImportMultiLayer.h"
 #include "Sample/Multilayer/MultiLayer.h"
-#include "PyTools/Embed/PythonInterpreter.h"  // BornAgain::importScript
+#include "PyCore/Embed/PythonInterpreter.h"  // BornAgain::importScript
 // SWIG runtime access for creating a MultiLayer instance from Python
 #include "auto/Wrap/swig_runtime.h"
 
diff --git a/PyTools/Sample/Multilayer/ImportMultiLayer.h b/PyCore/Sample/Multilayer/ImportMultiLayer.h
similarity index 89%
rename from PyTools/Sample/Multilayer/ImportMultiLayer.h
rename to PyCore/Sample/Multilayer/ImportMultiLayer.h
index f873152950446ed439369fbbda818c79e61cfb2b..ac1714992ab6bb0e2adc68c62ff09c4e19eb55ea 100644
--- a/PyTools/Sample/Multilayer/ImportMultiLayer.h
+++ b/PyCore/Sample/Multilayer/ImportMultiLayer.h
@@ -2,8 +2,8 @@
 
 #include <string>
 #include <memory>  // unique_ptr
-#include "PyTools/Embed/PyObjectDecl.h"
-#include "PyTools/Embed/Result.h"
+#include "PyCore/Embed/PyObjectDecl.h"
+#include "PyCore/Embed/Result.h"
 
 class MultiLayer;