diff --git a/Applications/DataExplorer/Base/OGSError.cpp b/Applications/DataExplorer/Base/OGSError.cpp
index c5f9f7df6671cfca4187bb220b6b9ef798ef6e76..53554ae854d298eee680dab4debbb98acd0bee20 100644
--- a/Applications/DataExplorer/Base/OGSError.cpp
+++ b/Applications/DataExplorer/Base/OGSError.cpp
@@ -11,7 +11,7 @@
  *              http://www.opengeosys.org/project/license
  *
  */
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 #include <QMessageBox>
 #include <QString>
diff --git a/Applications/DataExplorer/Base/TreeItem.cpp b/Applications/DataExplorer/Base/TreeItem.cpp
index 98dc4c9cd89ceb11ce9833203a8fd2341705959d..c94c77033f71bf9f1f0e0ed7b04a9a14369c5b6a 100644
--- a/Applications/DataExplorer/Base/TreeItem.cpp
+++ b/Applications/DataExplorer/Base/TreeItem.cpp
@@ -12,7 +12,7 @@
  *
  */
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 #include <utility>
 
diff --git a/Applications/DataExplorer/Base/TreeModel.cpp b/Applications/DataExplorer/Base/TreeModel.cpp
index e5920eaddd4e48e61ef43a2bbd44416b80a20e60..def69470a513a72bef2d8bb3787d9c6bca6fea6a 100644
--- a/Applications/DataExplorer/Base/TreeModel.cpp
+++ b/Applications/DataExplorer/Base/TreeModel.cpp
@@ -12,13 +12,13 @@
  *
  */
 
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 #include <QModelIndex>
 #include <QStringList>
 #include <QVariant>
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 /**
  * A model for the QTreeView implementing the tree as a double-linked list.
diff --git a/Applications/DataExplorer/Base/TreeModelIterator.cpp b/Applications/DataExplorer/Base/TreeModelIterator.cpp
index dc8d2041399de3d63af204305ee24c98a0461452..7ceabc2605303dea0446003ffe527d2170372e01 100644
--- a/Applications/DataExplorer/Base/TreeModelIterator.cpp
+++ b/Applications/DataExplorer/Base/TreeModelIterator.cpp
@@ -15,8 +15,8 @@
 // ** INCLUDES **
 #include "TreeModelIterator.h"
 
-#include "TreeItem.h"
-#include "TreeModel.h"
+#include "Base/TreeItem.h"
+#include "Base/TreeModel.h"
 
 TreeModelIterator::TreeModelIterator(TreeModel* model)
     : _current(nullptr), _model(model)
diff --git a/Applications/DataExplorer/DataView/AddLayerToMeshDialog.cpp b/Applications/DataExplorer/DataView/AddLayerToMeshDialog.cpp
index 26cca07ed144ad95102a68bd0af8db930cad5f6a..d52dd20ee17afbe9dc89163e698056da03778dab 100644
--- a/Applications/DataExplorer/DataView/AddLayerToMeshDialog.cpp
+++ b/Applications/DataExplorer/DataView/AddLayerToMeshDialog.cpp
@@ -14,8 +14,8 @@
 
 #include "AddLayerToMeshDialog.h"
 
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
 
 AddLayerToMeshDialog::AddLayerToMeshDialog(QDialog* parent) : QDialog(parent)
 {
diff --git a/Applications/DataExplorer/DataView/BaseItem.h b/Applications/DataExplorer/DataView/BaseItem.h
index 3dfdac84a25b085dd66f102d703d22d61f7d19c7..252e2bc5b43581cca84ffbedf3b6fa701b94c494 100644
--- a/Applications/DataExplorer/DataView/BaseItem.h
+++ b/Applications/DataExplorer/DataView/BaseItem.h
@@ -13,7 +13,7 @@
  */
 #pragma once
 
-#include "VtkStationSource.h"
+#include "VtkVis/VtkStationSource.h"
 #include <QModelIndex>
 #include <vtkPolyDataAlgorithm.h>
 
diff --git a/Applications/DataExplorer/DataView/CMakeLists.txt b/Applications/DataExplorer/DataView/CMakeLists.txt
index 4b92840af318a47b42d78c4c04a49880a720c61e..ffd17e9fc777796ae8be8f47a58d48eb414f1db0 100644
--- a/Applications/DataExplorer/DataView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/CMakeLists.txt
@@ -113,26 +113,13 @@ source_group("UI Files" FILES ${UIS})
 
 set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../..)
 set(GUI_SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/..)
-include_directories(
-    ${SOURCE_DIR_REL}/Applications/FileIO
-    ${SOURCE_DIR_REL}/BaseLib
-    ${SOURCE_DIR_REL}/MathLib
-    ${SOURCE_DIR_REL}/GeoLib
-    ${SOURCE_DIR_REL}/MeshGeoToolsLib
-    ${SOURCE_DIR_REL}/MeshLib
-    ${GUI_SOURCE_DIR_REL}/Base
-    ${GUI_SOURCE_DIR_REL}/VtkVis
-    ${CMAKE_CURRENT_SOURCE_DIR}
-    ${CMAKE_CURRENT_SOURCE_DIR}/DiagramView
-    ${CMAKE_CURRENT_SOURCE_DIR}/StratView
-)
 
 if(GEOTIFF_FOUND)
     include_directories(${GEOTIFF_INCLUDE_DIRS})
 endif() # GEOTIFF_FOUND
 
 ogs_add_library(QtDataView ${SOURCES} ${HEADERS} ${UIS})
-
+target_include_directories(QtDataView PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries(
     QtDataView
     PUBLIC GeoLib MeshGeoToolsLib MeshLib QtBase VtkVis
diff --git a/Applications/DataExplorer/DataView/CondFromRasterDialog.cpp b/Applications/DataExplorer/DataView/CondFromRasterDialog.cpp
index 570764d7918f2d634bd700dcb7a0c9077777c4d5..cea1a912493a62ed4f17c0fd072b65867ebbe084 100644
--- a/Applications/DataExplorer/DataView/CondFromRasterDialog.cpp
+++ b/Applications/DataExplorer/DataView/CondFromRasterDialog.cpp
@@ -19,9 +19,9 @@
 #include <utility>
 
 #include "DirectConditionGenerator.h"
-#include "Mesh.h"
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
+#include "MeshLib/Mesh.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
 
 CondFromRasterDialog::CondFromRasterDialog(std::vector<MeshLib::Mesh*> msh_vec,
                                            QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/CondItem.h b/Applications/DataExplorer/DataView/CondItem.h
index 404cf809da463b0ffc73fd5251f4a2ee3cf9fe5f..9e97f63c3fa6a478b6ec5c4e479b59df70e022b2 100644
--- a/Applications/DataExplorer/DataView/CondItem.h
+++ b/Applications/DataExplorer/DataView/CondItem.h
@@ -13,7 +13,7 @@
 #include <memory>
 
 #include "Applications/DataHolderLib/FemCondition.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 #include <QList>
 #include <QVariant>
diff --git a/Applications/DataExplorer/DataView/CreateStructuredGridDialog.cpp b/Applications/DataExplorer/DataView/CreateStructuredGridDialog.cpp
index f9a64d936ac7fbd6dd65787325dbcf8fc1e32c88..5af2b181c251c10cf5ca32c6db462895bf2fdbba 100644
--- a/Applications/DataExplorer/DataView/CreateStructuredGridDialog.cpp
+++ b/Applications/DataExplorer/DataView/CreateStructuredGridDialog.cpp
@@ -18,8 +18,8 @@
 
 #include "GeoLib/Point.h"
 #include "MeshLib/MeshGenerators/MeshGenerator.h"
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
 
 CreateStructuredGridDialog::CreateStructuredGridDialog(QDialog* parent)
     : QDialog(parent)
diff --git a/Applications/DataExplorer/DataView/DataExplorerSettingsDialog.cpp b/Applications/DataExplorer/DataView/DataExplorerSettingsDialog.cpp
index 1f3c082a88a425dc593f98000df9ddde64608671..227bb9f6d60fa8fb056a6f02ba833d3c2f9f834e 100644
--- a/Applications/DataExplorer/DataView/DataExplorerSettingsDialog.cpp
+++ b/Applications/DataExplorer/DataView/DataExplorerSettingsDialog.cpp
@@ -17,7 +17,7 @@
 #include <QFileDialog>
 #include <QSettings>
 
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 DataExplorerSettingsDialog::DataExplorerSettingsDialog(QDialog* parent)
     : QDialog(parent)
diff --git a/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt b/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
index 00f0cb959c4bc70934b36d321b91c7f6f8d4fa35..c39c4c5c99aa168856fd7373a458819182171bf9 100644
--- a/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/DiagramView/CMakeLists.txt
@@ -21,17 +21,11 @@ set(HEADERS
 
 set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
 set(GUI_SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../..)
-include_directories(
-    ${SOURCE_DIR_REL}/BaseLib ${SOURCE_DIR_REL}/GeoLib
-    ${SOURCE_DIR_REL}/MathLib ${CMAKE_CURRENT_SOURCE_DIR}
-    ${GUI_SOURCE_DIR_REL}/Base ${GUI_SOURCE_DIR_REL}/DataView
-)
-
 file(GLOB_RECURSE UIS CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UIS})
 
 ogs_add_library(QtDiagramView ${SOURCES} ${HEADERS} ${UIS})
-
+target_include_directories(QtDiagramView PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries(
     QtDiagramView PRIVATE BaseLib GeoLib QtBase DataHolderLib Qt5::Gui
                           spdlog::spdlog
diff --git a/Applications/DataExplorer/DataView/DiagramView/DiagramList.cpp b/Applications/DataExplorer/DataView/DiagramView/DiagramList.cpp
index bba60cb056eb5082bc65288ee24b636c27c9abff..ad2d6979ed84c74de7e8e568bdc50f12e7a16c8a 100644
--- a/Applications/DataExplorer/DataView/DiagramView/DiagramList.cpp
+++ b/Applications/DataExplorer/DataView/DiagramView/DiagramList.cpp
@@ -19,10 +19,10 @@
 #include <limits>
 
 #include "BaseLib/Logging.h"
-#include "DateTools.h"
+#include "BaseLib/DateTools.h"
 #include "GetDateTime.h"
-#include "SensorData.h"
-#include "StringTools.h"
+#include "GeoLib/SensorData.h"
+#include "BaseLib/StringTools.h"
 
 DiagramList::DiagramList() : _xLabel(""), _yLabel(""), _xUnit(""), _yUnit("") {}
 
diff --git a/Applications/DataExplorer/DataView/DiagramView/DiagramPrefsDialog.cpp b/Applications/DataExplorer/DataView/DiagramView/DiagramPrefsDialog.cpp
index f70458f486d4790344fdeb736c87794220d0426c..bde98035ed4af1bfefdad761a2fd777aad1d9cd7 100644
--- a/Applications/DataExplorer/DataView/DiagramView/DiagramPrefsDialog.cpp
+++ b/Applications/DataExplorer/DataView/DiagramView/DiagramPrefsDialog.cpp
@@ -21,8 +21,8 @@
 #include "DetailWindow.h"
 #include "DiagramList.h"
 #include "GetDateTime.h"
-#include "OGSError.h"
-#include "Station.h"
+#include "Base/OGSError.h"
+#include "GeoLib/Station.h"
 
 DiagramPrefsDialog::DiagramPrefsDialog(const GeoLib::Station* stn,
                                        const QString& listName,
diff --git a/Applications/DataExplorer/DataView/DiagramView/DiagramScene.h b/Applications/DataExplorer/DataView/DiagramView/DiagramScene.h
index 00453e0b502c552ab20dc52a8a5988d95ee0c47f..9a7d9a98271a96347429d9a706a4a45a32137ac1 100644
--- a/Applications/DataExplorer/DataView/DiagramView/DiagramScene.h
+++ b/Applications/DataExplorer/DataView/DiagramView/DiagramScene.h
@@ -17,7 +17,7 @@
 #include "DiagramList.h"
 #include "QArrow.h"
 #include "QGraphicsGrid.h"
-#include "QNonScalableGraphicsTextItem.h"
+#include "Base/QNonScalableGraphicsTextItem.h"
 #include <QGraphicsScene>
 
 class QDateTime;
diff --git a/Applications/DataExplorer/DataView/DirectConditionGenerator.cpp b/Applications/DataExplorer/DataView/DirectConditionGenerator.cpp
index 9dd6725b95acb94de40643c2afca980c1838d89b..a2a966f543bc7768ddf9e9222eedb31a0f2f5f8f 100644
--- a/Applications/DataExplorer/DataView/DirectConditionGenerator.cpp
+++ b/Applications/DataExplorer/DataView/DirectConditionGenerator.cpp
@@ -21,10 +21,10 @@
 
 #include "Applications/FileIO/AsciiRasterInterface.h"
 #include "BaseLib/Logging.h"
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-#include "MeshSurfaceExtraction.h"
-#include "Raster.h"
+#include "MeshLib/MeshSurfaceExtraction.h"
+#include "GeoLib/Raster.h"
 
 const std::vector<std::pair<std::size_t, double>>&
 DirectConditionGenerator::directToSurfaceNodes(const MeshLib::Mesh& mesh,
diff --git a/Applications/DataExplorer/DataView/ElementTreeModel.cpp b/Applications/DataExplorer/DataView/ElementTreeModel.cpp
index 493ef0be3e6ae07208bcf409f29684c4947cf6fb..82c499c843799895dc8850261f498a54d9616ed7 100644
--- a/Applications/DataExplorer/DataView/ElementTreeModel.cpp
+++ b/Applications/DataExplorer/DataView/ElementTreeModel.cpp
@@ -20,7 +20,7 @@
 #include "MeshLib/MeshInformation.h"
 #include "MeshLib/Node.h"
 #include "MeshLib/Vtk/VtkMappedMeshSource.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 namespace
 {
diff --git a/Applications/DataExplorer/DataView/ElementTreeModel.h b/Applications/DataExplorer/DataView/ElementTreeModel.h
index c7603323b66b9ebd918e7f331b656868087b6177..796077b7bc844313838abb8e6a5d23edbb80d317 100644
--- a/Applications/DataExplorer/DataView/ElementTreeModel.h
+++ b/Applications/DataExplorer/DataView/ElementTreeModel.h
@@ -15,7 +15,7 @@
 #pragma once
 
 #include <array>
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 class vtkUnstructuredGridAlgorithm;
 
diff --git a/Applications/DataExplorer/DataView/ElementTreeView.cpp b/Applications/DataExplorer/DataView/ElementTreeView.cpp
index 2770f4a930b41aa0a75adab75d5c35687d3679d3..e736b795516a4e253ee8bedc59da988c21ecd054 100644
--- a/Applications/DataExplorer/DataView/ElementTreeView.cpp
+++ b/Applications/DataExplorer/DataView/ElementTreeView.cpp
@@ -18,7 +18,7 @@
 #include <QModelIndex>
 
 #include "ElementTreeModel.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 ElementTreeView::ElementTreeView(QWidget* parent) : QTreeView(parent) {}
 
diff --git a/Applications/DataExplorer/DataView/FemConditionModel.cpp b/Applications/DataExplorer/DataView/FemConditionModel.cpp
index 4a6f1ff26afadf89e6eaea42c097e186415e78d7..e4aa812d4d536ea1d537fa2057798f5f83618f99 100644
--- a/Applications/DataExplorer/DataView/FemConditionModel.cpp
+++ b/Applications/DataExplorer/DataView/FemConditionModel.cpp
@@ -12,7 +12,7 @@
 
 #include "Applications/DataHolderLib/BoundaryCondition.h"
 #include "Applications/DataHolderLib/SourceTerm.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 /**
  * Constructor.
diff --git a/Applications/DataExplorer/DataView/GEOModels.cpp b/Applications/DataExplorer/DataView/GEOModels.cpp
index c0753f3087662f8a33ce60d65b68dcb8857ce8a4..9b9b7e961aac4cafd3d14809381b4d4b57a4c1ff 100644
--- a/Applications/DataExplorer/DataView/GEOModels.cpp
+++ b/Applications/DataExplorer/DataView/GEOModels.cpp
@@ -19,7 +19,7 @@
 #include "BaseLib/Logging.h"
 #include "GeoLib/Triangle.h"
 #include "GeoTreeModel.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 #include "StationTreeModel.h"
 
 GEOModels::GEOModels(GeoLib::GEOObjects& geo_objects, QObject* parent /*= 0*/)
diff --git a/Applications/DataExplorer/DataView/GMSHPrefsDialog.cpp b/Applications/DataExplorer/DataView/GMSHPrefsDialog.cpp
index e8cf72ff6f888d0ed4997fd627d064e4ff9e97a6..64c58ae183d44e0881ca867f37e9da5195a7aa6e 100644
--- a/Applications/DataExplorer/DataView/GMSHPrefsDialog.cpp
+++ b/Applications/DataExplorer/DataView/GMSHPrefsDialog.cpp
@@ -13,17 +13,17 @@
  */
 
 // Base
-#include "StringTools.h"
+#include "BaseLib/StringTools.h"
 
 // Qt/Base
 #include <QStringList>
 #include <QStringListModel>
 
-#include "GEOObjects.h"
+#include "GeoLib/GEOObjects.h"
 #include "GMSHPrefsDialog.h"
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
-#include "StrictIntValidator.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
+#include "Base/StrictIntValidator.h"
 
 GMSHPrefsDialog::GMSHPrefsDialog(GeoLib::GEOObjects const& geoObjects,
                                  QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/GeoObjectListItem.h b/Applications/DataExplorer/DataView/GeoObjectListItem.h
index 88983a85c280e8ea10926e2007be6c9c89f6173e..fbe0494da0ec321bb7feaba4e01ee04e5b51fdec 100644
--- a/Applications/DataExplorer/DataView/GeoObjectListItem.h
+++ b/Applications/DataExplorer/DataView/GeoObjectListItem.h
@@ -14,13 +14,13 @@
  */
 #pragma once
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
-#include "GeoType.h"
+#include "GeoLib/GeoType.h"
 
-#include "VtkPointsSource.h"
-#include "VtkPolylinesSource.h"
-#include "VtkSurfacesSource.h"
+#include "VtkVis/VtkPointsSource.h"
+#include "VtkVis/VtkPolylinesSource.h"
+#include "VtkVis/VtkSurfacesSource.h"
 #include <QModelIndex>
 #include <vtkPolyDataAlgorithm.h>
 
diff --git a/Applications/DataExplorer/DataView/GeoOnMeshMappingDialog.cpp b/Applications/DataExplorer/DataView/GeoOnMeshMappingDialog.cpp
index 7d08d2af184f2ac9208472ddf87e35b33d4c47cb..47fdcf4bdbc0803ef3e87f5bd23eb4dbe9ef58fc 100644
--- a/Applications/DataExplorer/DataView/GeoOnMeshMappingDialog.cpp
+++ b/Applications/DataExplorer/DataView/GeoOnMeshMappingDialog.cpp
@@ -14,8 +14,8 @@
 
 #include "GeoOnMeshMappingDialog.h"
 
-#include "Mesh.h"
-#include "OGSError.h"
+#include "MeshLib/Mesh.h"
+#include "Base/OGSError.h"
 
 GeoOnMeshMappingDialog::GeoOnMeshMappingDialog(
     std::vector<std::unique_ptr<MeshLib::Mesh>> const& mesh_vec,
diff --git a/Applications/DataExplorer/DataView/GeoTreeItem.h b/Applications/DataExplorer/DataView/GeoTreeItem.h
index ad2acec59ba010f722f04d582be91f77ea67cb06..e6970acc31b587dbdd38470cb01127d75aedb578 100644
--- a/Applications/DataExplorer/DataView/GeoTreeItem.h
+++ b/Applications/DataExplorer/DataView/GeoTreeItem.h
@@ -14,9 +14,9 @@
 
 #pragma once
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
-#include "GeoObject.h"
+#include "GeoLib/GeoObject.h"
 
 /**
  * \brief A TreeItem containing an additional GeoObject
diff --git a/Applications/DataExplorer/DataView/GeoTreeModel.cpp b/Applications/DataExplorer/DataView/GeoTreeModel.cpp
index 5df9e13f42e5f477f65073ec0b7205b7a849574b..c372295b59d13576e340bd653d563e7b13524b3e 100644
--- a/Applications/DataExplorer/DataView/GeoTreeModel.cpp
+++ b/Applications/DataExplorer/DataView/GeoTreeModel.cpp
@@ -18,7 +18,7 @@
 #include "GeoLib/Triangle.h"
 #include "GeoObjectListItem.h"
 #include "GeoTreeItem.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 /**
  * Constructor.
diff --git a/Applications/DataExplorer/DataView/GeoTreeModel.h b/Applications/DataExplorer/DataView/GeoTreeModel.h
index b6bd8d6895d63e0977e1410539781c3fbc298b73..b649a5958233a996d61fe02ce661ca95be85cfcd 100644
--- a/Applications/DataExplorer/DataView/GeoTreeModel.h
+++ b/Applications/DataExplorer/DataView/GeoTreeModel.h
@@ -21,7 +21,7 @@
 #include "GeoLib/PointVec.h"
 #include "GeoLib/PolylineVec.h"
 #include "GeoLib/SurfaceVec.h"
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 namespace GeoLib
 {
diff --git a/Applications/DataExplorer/DataView/GeoTreeView.cpp b/Applications/DataExplorer/DataView/GeoTreeView.cpp
index dc1416b9084a3f30088eb0d1f7b572b53e54c4ed..baff5ddb425b9d3a4609b866ea5e58d329a15562 100644
--- a/Applications/DataExplorer/DataView/GeoTreeView.cpp
+++ b/Applications/DataExplorer/DataView/GeoTreeView.cpp
@@ -21,9 +21,9 @@
 #include "GeoObjectListItem.h"
 #include "GeoTreeItem.h"
 #include "GeoTreeModel.h"
-#include "ImportFileTypes.h"
-#include "LastSavedFileDirectory.h"
-#include "OGSError.h"
+#include "Base/ImportFileTypes.h"
+#include "Base/LastSavedFileDirectory.h"
+#include "Base/OGSError.h"
 
 GeoTreeView::GeoTreeView(QWidget* parent) : QTreeView(parent) {}
 
diff --git a/Applications/DataExplorer/DataView/LineEditDialog.cpp b/Applications/DataExplorer/DataView/LineEditDialog.cpp
index c85293d57caecd87927f0483e7475b85b930dcba..ea39fbf280719405a2880d8f85e11701c187ea81 100644
--- a/Applications/DataExplorer/DataView/LineEditDialog.cpp
+++ b/Applications/DataExplorer/DataView/LineEditDialog.cpp
@@ -17,7 +17,7 @@
 #include <QStringList>
 #include <QStringListModel>
 
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 LineEditDialog::LineEditDialog(const GeoLib::PolylineVec& ply_vec,
                                QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/LinearEditDialog.h b/Applications/DataExplorer/DataView/LinearEditDialog.h
index e874e9dc08d9229f8bb09eaf5af9bd67581ff3d3..a74d9a489657adf2b2a6a7ea1d0a765471971dc9 100644
--- a/Applications/DataExplorer/DataView/LinearEditDialog.h
+++ b/Applications/DataExplorer/DataView/LinearEditDialog.h
@@ -17,7 +17,7 @@
 #include "ui_LinearEdit.h"
 #include <QDialog>
 
-#include "Polyline.h"
+#include "GeoLib/Polyline.h"
 
 /**
  * \brief A dialog window for creating linear boundary conditions on polylines
diff --git a/Applications/DataExplorer/DataView/MergeGeometriesDialog.cpp b/Applications/DataExplorer/DataView/MergeGeometriesDialog.cpp
index b3b678aa3c8f317670f8db61890aed4945686bea..12d1f60293befbf4242cee3c3675203ce016eff5 100644
--- a/Applications/DataExplorer/DataView/MergeGeometriesDialog.cpp
+++ b/Applications/DataExplorer/DataView/MergeGeometriesDialog.cpp
@@ -17,8 +17,8 @@
 #include <QStringList>
 #include <QStringListModel>
 
-#include "GEOObjects.h"
-#include "OGSError.h"
+#include "GeoLib/GEOObjects.h"
+#include "Base/OGSError.h"
 
 MergeGeometriesDialog::MergeGeometriesDialog(GeoLib::GEOObjects& geoObjects,
                                              QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/MeshAnalysisDialog.cpp b/Applications/DataExplorer/DataView/MeshAnalysisDialog.cpp
index b3ff0a1b0444719a4bf900640080b37f946f058b..170ec23766aa586fef0c05f4661dbdf1e5f2c18d 100644
--- a/Applications/DataExplorer/DataView/MeshAnalysisDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshAnalysisDialog.cpp
@@ -14,11 +14,11 @@
 
 #include "MeshAnalysisDialog.h"
 
-#include "Mesh.h"
-#include "MeshEditing/MeshRevision.h"
-#include "MeshQuality/MeshValidation.h"
-#include "MeshSearch/NodeSearch.h"
-#include "StrictDoubleValidator.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/MeshEditing/MeshRevision.h"
+#include "MeshLib/MeshQuality/MeshValidation.h"
+#include "MeshLib/MeshSearch/NodeSearch.h"
+#include "Base/StrictDoubleValidator.h"
 
 MeshAnalysisDialog::MeshAnalysisDialog(
     std::vector<std::unique_ptr<MeshLib::Mesh>> const& mesh_vec,
diff --git a/Applications/DataExplorer/DataView/MeshElementRemovalDialog.cpp b/Applications/DataExplorer/DataView/MeshElementRemovalDialog.cpp
index f4c84ffa0373a938c56dcefd326ebaa454614f12..e4538238281ac71e7b83b1ef67ae5e2919dce46d 100644
--- a/Applications/DataExplorer/DataView/MeshElementRemovalDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshElementRemovalDialog.cpp
@@ -20,7 +20,7 @@
 
 #include "Applications/DataExplorer/Base/OGSError.h"
 #include "Applications/DataHolderLib/Project.h"
-#include "Elements/Element.h"
+#include "MeshLib/Elements/Element.h"
 #include "GeoLib/AABB.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/MeshEditing/RemoveMeshComponents.h"
diff --git a/Applications/DataExplorer/DataView/MeshItem.h b/Applications/DataExplorer/DataView/MeshItem.h
index 744ab7a374a787a025930a7cd5d267ce72df2a19..ecab4b31716d87a7ba1c0ff0c27e8a2b86fbb0ca 100644
--- a/Applications/DataExplorer/DataView/MeshItem.h
+++ b/Applications/DataExplorer/DataView/MeshItem.h
@@ -14,7 +14,7 @@
 
 #pragma once
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 #include "MeshLib/Vtk/VtkMappedMeshSource.h"
 
diff --git a/Applications/DataExplorer/DataView/MeshLayerEditDialog.cpp b/Applications/DataExplorer/DataView/MeshLayerEditDialog.cpp
index 9ba27b04474b79e7ab604b6ea757446b54be3e67..025cda9d5dd374f533c33d572844110446e4797f 100644
--- a/Applications/DataExplorer/DataView/MeshLayerEditDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshLayerEditDialog.cpp
@@ -30,11 +30,11 @@
 
 #include "Applications/FileIO/AsciiRasterInterface.h"
 #include "BaseLib/Logging.h"
-#include "Mesh.h"
-#include "MeshGenerators/LayeredVolume.h"
-#include "OGSError.h"
-#include "StringTools.h"
-#include "TetGenInterface.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/MeshGenerators/LayeredVolume.h"
+#include "Base/OGSError.h"
+#include "BaseLib/StringTools.h"
+#include "Applications/FileIO/TetGenInterface.h"
 
 MeshLayerEditDialog::MeshLayerEditDialog(const MeshLib::Mesh* mesh,
                                          QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/MeshLayerEditDialog.h b/Applications/DataExplorer/DataView/MeshLayerEditDialog.h
index 0a75ec6e44e5c837eff2c1b3c9c757e196e0a1bb..3fa81100edc003411bdec2e55a22b63454764a14 100644
--- a/Applications/DataExplorer/DataView/MeshLayerEditDialog.h
+++ b/Applications/DataExplorer/DataView/MeshLayerEditDialog.h
@@ -18,7 +18,7 @@
 #include <QDialog>
 #include <QLineEdit>
 
-#include "MeshGenerators/MeshLayerMapper.h"
+#include "MeshLib/MeshGenerators/MeshLayerMapper.h"
 
 class QPushButton;
 class QCheckBox;
diff --git a/Applications/DataExplorer/DataView/MeshMapping2DDialog.cpp b/Applications/DataExplorer/DataView/MeshMapping2DDialog.cpp
index a588d33d3fa5e62e3955dd8f71ef1822fc796109..01d0240f4f3f2768019b7fabb70dbceb56aea3eb 100644
--- a/Applications/DataExplorer/DataView/MeshMapping2DDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshMapping2DDialog.cpp
@@ -12,8 +12,8 @@
 #include <QFileDialog>
 #include <QSettings>
 
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
 
 MeshMapping2DDialog::MeshMapping2DDialog(QDialog* parent) : QDialog(parent)
 {
diff --git a/Applications/DataExplorer/DataView/MeshModel.cpp b/Applications/DataExplorer/DataView/MeshModel.cpp
index 4ad7156620c05b4a2d2df3d6cd21da675062a91d..4803a6d507ed20f94162e3ea2f915a0275ce0d59 100644
--- a/Applications/DataExplorer/DataView/MeshModel.cpp
+++ b/Applications/DataExplorer/DataView/MeshModel.cpp
@@ -22,10 +22,10 @@
 #include "Applications/DataHolderLib/Project.h"
 #include "BaseLib/Logging.h"
 #include "BaseLib/StringTools.h"
-#include "Elements/Element.h"
+#include "MeshLib/Elements/Element.h"
 #include "MeshItem.h"
 #include "MeshLib/Node.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 const QVariant MeshModel::element_str = "Element";
 const std::map<MeshLib::MeshElemType, QVariant> MeshModel::elem_type_map =
diff --git a/Applications/DataExplorer/DataView/MeshModel.h b/Applications/DataExplorer/DataView/MeshModel.h
index 916c4af7361582b5d8b55c9972c3c050665a24a2..509fa18ebc558becdd1a1d55e135e887f1853a21 100644
--- a/Applications/DataExplorer/DataView/MeshModel.h
+++ b/Applications/DataExplorer/DataView/MeshModel.h
@@ -18,7 +18,7 @@
 
 #include "MeshLib/MeshEnums.h"
 
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 namespace DataHolderLib
 {
diff --git a/Applications/DataExplorer/DataView/MeshQualitySelectionDialog.cpp b/Applications/DataExplorer/DataView/MeshQualitySelectionDialog.cpp
index 2d085f672a9d8465b34148a31d70ad25d6ae16ed..d07a7dddf33fc73801d1f9e13afd3bcff2aface5 100644
--- a/Applications/DataExplorer/DataView/MeshQualitySelectionDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshQualitySelectionDialog.cpp
@@ -18,7 +18,7 @@
 #include <QFileInfo>
 #include <QSettings>
 
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 /// Constructor
 MeshQualitySelectionDialog::MeshQualitySelectionDialog(QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/MeshValueEditDialog.cpp b/Applications/DataExplorer/DataView/MeshValueEditDialog.cpp
index 7e66bc4e0c1151c45d06e4e6c7640cc9d0a81e7c..0104d2c8e4492c7f032f165b4d298d0138fe0ea6 100644
--- a/Applications/DataExplorer/DataView/MeshValueEditDialog.cpp
+++ b/Applications/DataExplorer/DataView/MeshValueEditDialog.cpp
@@ -14,8 +14,8 @@
 
 #include "MeshValueEditDialog.h"
 
-#include "MeshEditing/ElementValueModification.h"
-#include "OGSError.h"
+#include "MeshLib/MeshEditing/ElementValueModification.h"
+#include "Base/OGSError.h"
 
 MeshValueEditDialog::MeshValueEditDialog(MeshLib::Mesh* mesh, QDialog* parent)
     : QDialog(parent), _mesh(mesh)
diff --git a/Applications/DataExplorer/DataView/MeshView.cpp b/Applications/DataExplorer/DataView/MeshView.cpp
index d41989066bcb44c510c978da82687e2418d3cbc7..6516bfe73649b33860bdaa24bd8b4bc0e28cedbd 100644
--- a/Applications/DataExplorer/DataView/MeshView.cpp
+++ b/Applications/DataExplorer/DataView/MeshView.cpp
@@ -24,8 +24,8 @@
 
 #include "AddLayerToMeshDialog.h"
 #include "Applications/FileIO/AsciiRasterInterface.h"
-#include "ImportFileTypes.h"
-#include "LastSavedFileDirectory.h"
+#include "Base/ImportFileTypes.h"
+#include "Base/LastSavedFileDirectory.h"
 #include "MeshItem.h"
 #include "MeshLayerEditDialog.h"
 #include "MeshLib/Mesh.h"
@@ -36,12 +36,12 @@
 #include "MeshMapping2DDialog.h"
 #include "MeshModel.h"
 #include "MeshValueEditDialog.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 #include "RasterDataToMeshDialog.h"
-#include "SHPInterface.h"
+#include "Applications/FileIO/SHPInterface.h"
 #include "SaveMeshDialog.h"
 #include "SurfaceExtractionDialog.h"
-#include "TetGenInterface.h"
+#include "Applications/FileIO/TetGenInterface.h"
 
 MeshView::MeshView(QWidget* parent /*= 0*/) : QTreeView(parent)
 {
diff --git a/Applications/DataExplorer/DataView/ModelTreeItem.h b/Applications/DataExplorer/DataView/ModelTreeItem.h
index e2854f7b79bc35ff63e849e74013f01a9694bb43..7ef4a0aeb6c3548b801e7e3be9531d107dac271e 100644
--- a/Applications/DataExplorer/DataView/ModelTreeItem.h
+++ b/Applications/DataExplorer/DataView/ModelTreeItem.h
@@ -17,7 +17,7 @@
 #include "GeoLib/Station.h"
 
 #include "BaseItem.h"
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 /**
  * \brief A TreeItem containing some additional information used in the StationModel.
diff --git a/Applications/DataExplorer/DataView/ProcessModel.cpp b/Applications/DataExplorer/DataView/ProcessModel.cpp
index 3c263976faf85fdf9ebf4fb120f16495b35d3ea6..854e731e28437e182fb14261df36f65d799fd23d 100644
--- a/Applications/DataExplorer/DataView/ProcessModel.cpp
+++ b/Applications/DataExplorer/DataView/ProcessModel.cpp
@@ -18,7 +18,7 @@
 #include "CondItem.h"
 #include "GeoLib/GEOObjects.h"
 #include "GeoLib/GeoObject.h"
-#include "GeoType.h"
+#include "GeoLib/GeoType.h"
 #include "ProcessVarItem.h"
 
 ProcessModel::ProcessModel(DataHolderLib::Project& project, QObject* parent)
diff --git a/Applications/DataExplorer/DataView/ProcessModel.h b/Applications/DataExplorer/DataView/ProcessModel.h
index 6a4a61cc74d51b11efe43ef3bc3db772dd226d36..adbee93aabcd128d8cb2ff1ed41deb4b451a50b3 100644
--- a/Applications/DataExplorer/DataView/ProcessModel.h
+++ b/Applications/DataExplorer/DataView/ProcessModel.h
@@ -15,7 +15,7 @@
 #pragma once
 
 #include "Applications/DataHolderLib/Project.h"
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 class FEMCondition;
 class ProcessVarItem;
diff --git a/Applications/DataExplorer/DataView/ProcessVarItem.h b/Applications/DataExplorer/DataView/ProcessVarItem.h
index 6d646ef292c8922dee324824470a06599cf85ab5..c94f3d74b0436f4b5ecbd3592725049ab2771973 100644
--- a/Applications/DataExplorer/DataView/ProcessVarItem.h
+++ b/Applications/DataExplorer/DataView/ProcessVarItem.h
@@ -10,7 +10,7 @@
 
 #pragma once
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 /**
  * \brief A TreeItem representing process variable information.
diff --git a/Applications/DataExplorer/DataView/RasterDataToMeshDialog.cpp b/Applications/DataExplorer/DataView/RasterDataToMeshDialog.cpp
index d132b3e7fa14680dc0e9d1e558c082d467f1456c..49b0294f7a2ea6021e8fceca61f126edf7f6e6c6 100644
--- a/Applications/DataExplorer/DataView/RasterDataToMeshDialog.cpp
+++ b/Applications/DataExplorer/DataView/RasterDataToMeshDialog.cpp
@@ -13,8 +13,8 @@
 #include <QFileDialog>
 #include <QSettings>
 
-#include "OGSError.h"
-#include "StrictDoubleValidator.h"
+#include "Base/OGSError.h"
+#include "Base/StrictDoubleValidator.h"
 
 RasterDataToMeshDialog::RasterDataToMeshDialog(std::string const& mesh_name,
                                                QDialog* parent)
diff --git a/Applications/DataExplorer/DataView/SHPImportDialog.cpp b/Applications/DataExplorer/DataView/SHPImportDialog.cpp
index 076496baf6ef93679cf0ac8adf5c1e04ef325038..cbe5f1d30c92aec604f6a8cf2ff65d84ce3e903c 100644
--- a/Applications/DataExplorer/DataView/SHPImportDialog.cpp
+++ b/Applications/DataExplorer/DataView/SHPImportDialog.cpp
@@ -22,8 +22,8 @@
 #include <QVBoxLayout>
 
 #include "GeoLib/GEOObjects.h"
-#include "OGSError.h"
-#include "SHPInterface.h"
+#include "Base/OGSError.h"
+#include "Applications/FileIO/SHPInterface.h"
 
 SHPImportDialog::SHPImportDialog(std::string filename,
                                  GeoLib::GEOObjects& geo_objects,
diff --git a/Applications/DataExplorer/DataView/SaveMeshDialog.cpp b/Applications/DataExplorer/DataView/SaveMeshDialog.cpp
index ed699c3e74dfe7137ce2db7c698d7e439664129f..61968b92cba2ce4bd1028d615d9f34e9ce9347e2 100644
--- a/Applications/DataExplorer/DataView/SaveMeshDialog.cpp
+++ b/Applications/DataExplorer/DataView/SaveMeshDialog.cpp
@@ -17,11 +17,11 @@
 #include <QFileDialog>
 #include <QSettings>
 
-#include "LastSavedFileDirectory.h"
+#include "Base/LastSavedFileDirectory.h"
 #include "MeshLib/IO/Legacy/MeshIO.h"
 #include "MeshLib/IO/VtkIO/VtuInterface.h"
 #include "MeshLib/Mesh.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 SaveMeshDialog::SaveMeshDialog(MeshLib::Mesh const& mesh, QDialog* parent)
     : QDialog(parent), _mesh(mesh)
diff --git a/Applications/DataExplorer/DataView/SelectMeshDialog.cpp b/Applications/DataExplorer/DataView/SelectMeshDialog.cpp
index 4f80705dc777e40ad4902cd06ccd65d6e6d9fb97..dffb56c97fdc1c803e1777f14ba19930cbb0f7f6 100644
--- a/Applications/DataExplorer/DataView/SelectMeshDialog.cpp
+++ b/Applications/DataExplorer/DataView/SelectMeshDialog.cpp
@@ -19,7 +19,7 @@
 #include <QLabel>
 #include <QVBoxLayout>
 
-#include "GeoObject.h"
+#include "GeoLib/GeoObject.h"
 
 SelectMeshDialog::SelectMeshDialog(const GeoLib::GeoObject* geo_object,
                                    const std::list<std::string>& msh_names,
diff --git a/Applications/DataExplorer/DataView/StationTreeModel.cpp b/Applications/DataExplorer/DataView/StationTreeModel.cpp
index dfc2255dbf7b7dea9fe838da49d47911e17baabd..bf71b81d4be5e81ca9ff0470788db1cd2ef3cd84 100644
--- a/Applications/DataExplorer/DataView/StationTreeModel.cpp
+++ b/Applications/DataExplorer/DataView/StationTreeModel.cpp
@@ -17,8 +17,8 @@
 #include <QDebug>
 
 #include "BaseItem.h"
-#include "OGSError.h"
-#include "Station.h"
+#include "Base/OGSError.h"
+#include "GeoLib/Station.h"
 
 /**
  * Constructor.
diff --git a/Applications/DataExplorer/DataView/StationTreeModel.h b/Applications/DataExplorer/DataView/StationTreeModel.h
index 9c5e4e432ee5ac4db4a2db21e6c251348e99b252..cd5b59f4008587fefe787d9b3028b291c021463b 100644
--- a/Applications/DataExplorer/DataView/StationTreeModel.h
+++ b/Applications/DataExplorer/DataView/StationTreeModel.h
@@ -20,7 +20,7 @@
 #include "GeoLib/Point.h"
 
 #include "ModelTreeItem.h"
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 namespace GeoLib
 {
diff --git a/Applications/DataExplorer/DataView/StationTreeView.cpp b/Applications/DataExplorer/DataView/StationTreeView.cpp
index 67751b585cf2edbd3c8099a303d82b15eb6c4e6d..7b61fc1ad4b16b5d711b197c7f96c7d9680d2605 100644
--- a/Applications/DataExplorer/DataView/StationTreeView.cpp
+++ b/Applications/DataExplorer/DataView/StationTreeView.cpp
@@ -17,15 +17,15 @@
 #include <QFileDialog>
 #include <QMenu>
 
-#include "DiagramPrefsDialog.h"
-#include "GMSInterface.h"
-#include "ImportFileTypes.h"
-#include "LastSavedFileDirectory.h"
+#include "DiagramView/DiagramPrefsDialog.h"
+#include "Applications/FileIO/GMSInterface.h"
+#include "Base/ImportFileTypes.h"
+#include "Base/LastSavedFileDirectory.h"
 #include "ModelTreeItem.h"
-#include "OGSError.h"
-#include "Station.h"
+#include "Base/OGSError.h"
+#include "GeoLib/Station.h"
 #include "StationTreeModel.h"
-#include "StratWindow.h"
+#include "DataView/StratView/StratWindow.h"
 
 StationTreeView::StationTreeView(QWidget* parent) : QTreeView(parent)
 {
diff --git a/Applications/DataExplorer/DataView/StratView/CMakeLists.txt b/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
index e7543b2cefb9187df8f48e6109372851bd85c15c..842082f6d9a92a3c4db74edf18d06c8a6af7c060 100644
--- a/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
+++ b/Applications/DataExplorer/DataView/StratView/CMakeLists.txt
@@ -4,17 +4,11 @@ set(HEADERS StratBar.h StratScene.h StratView.h StratWindow.h)
 
 set(SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../../../..)
 set(GUI_SOURCE_DIR_REL ${CMAKE_CURRENT_SOURCE_DIR}/../..)
-include_directories(
-    ${CMAKE_CURRENT_SOURCE_DIR} ${SOURCE_DIR_REL}/BaseLib
-    ${SOURCE_DIR_REL}/GeoLib ${SOURCE_DIR_REL}/MathLib
-    ${GUI_SOURCE_DIR_REL}/Base
-)
-
 file(GLOB_RECURSE UI_FILES CONFIGURE_DEPENDS *.ui)
 source_group("UI Files" FILES ${UI_FILES})
 
 ogs_add_library(QtStratView ${SOURCES} ${HEADERS} ${UIS})
-
+target_include_directories(QtStratView PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
 target_link_libraries(
     QtStratView PRIVATE BaseLib GeoLib DataHolderLib QtBase Qt5::Gui
 )
diff --git a/Applications/DataExplorer/DataView/StratView/StratBar.h b/Applications/DataExplorer/DataView/StratView/StratBar.h
index 6c3e3d30a0c3e830b8770f286ba9297cd2f0ef04..54bc7b47a565a64aa42c28825613f8c8d533593f 100644
--- a/Applications/DataExplorer/DataView/StratView/StratBar.h
+++ b/Applications/DataExplorer/DataView/StratView/StratBar.h
@@ -18,7 +18,7 @@
 
 #include <QGraphicsItem>
 
-#include "StationBorehole.h"
+#include "GeoLib/StationBorehole.h"
 #include "Applications/DataHolderLib/Color.h"
 
 /**
diff --git a/Applications/DataExplorer/DataView/StratView/StratScene.cpp b/Applications/DataExplorer/DataView/StratView/StratScene.cpp
index 37e14d18c2356a2bff6c415959ac58b69c8bccbd..e730d3a1c861a8e57b39812ac29402d2ce622fc5 100644
--- a/Applications/DataExplorer/DataView/StratView/StratScene.cpp
+++ b/Applications/DataExplorer/DataView/StratView/StratScene.cpp
@@ -19,8 +19,8 @@
 #include <QGraphicsTextItem>
 #include <limits>
 
-#include "DateTools.h"
-#include "QNonScalableGraphicsTextItem.h"
+#include "BaseLib/DateTools.h"
+#include "Base/QNonScalableGraphicsTextItem.h"
 #include "StratBar.h"
 
 StratScene::StratScene(GeoLib::StationBorehole* station,
diff --git a/Applications/DataExplorer/DataView/StratView/StratScene.h b/Applications/DataExplorer/DataView/StratView/StratScene.h
index 6005c01967c6074155d84d1820bb89c1eb1a586f..236c3dff404b5cb0c1e130fb9d17c4e27e9247be 100644
--- a/Applications/DataExplorer/DataView/StratView/StratScene.h
+++ b/Applications/DataExplorer/DataView/StratView/StratScene.h
@@ -16,7 +16,7 @@
 
 #include <QGraphicsScene>
 
-#include "StationBorehole.h"
+#include "GeoLib/StationBorehole.h"
 #include "Applications/DataHolderLib/Color.h"
 
 class StratBar;
diff --git a/Applications/DataExplorer/DataView/StratView/StratView.cpp b/Applications/DataExplorer/DataView/StratView/StratView.cpp
index ebbb08d696cb244ec927ea1333282f47846b782f..268d9458078da1fd759ef21345a823f4cfcd52ce 100644
--- a/Applications/DataExplorer/DataView/StratView/StratView.cpp
+++ b/Applications/DataExplorer/DataView/StratView/StratView.cpp
@@ -16,7 +16,7 @@
 
 #include <math.h>
 
-#include "Station.h"
+#include "GeoLib/Station.h"
 
 StratView::~StratView()
 {
diff --git a/Applications/DataExplorer/DataView/StratView/StratWindow.cpp b/Applications/DataExplorer/DataView/StratView/StratWindow.cpp
index 2fe2c92187b3744ec88442fa466919639a593209..a1352ddfedcb96041cefb0f8540299a0f22bbb5b 100644
--- a/Applications/DataExplorer/DataView/StratView/StratWindow.cpp
+++ b/Applications/DataExplorer/DataView/StratView/StratWindow.cpp
@@ -12,9 +12,9 @@
  *
  */
 
-#include "StratWindow.h"
+#include "DataView/StratView/StratWindow.h"
 
-#include "Station.h"
+#include "GeoLib/Station.h"
 
 StratWindow::StratWindow(
     GeoLib::StationBorehole* station,
diff --git a/Applications/DataExplorer/DataView/StratView/StratWindow.ui b/Applications/DataExplorer/DataView/StratView/StratWindow.ui
index f6719ed02d10b36614ffa183524a81f9ff880101..bbdb860eaa11005d1bd5832251ccb4338b1e59c3 100644
--- a/Applications/DataExplorer/DataView/StratView/StratWindow.ui
+++ b/Applications/DataExplorer/DataView/StratView/StratWindow.ui
@@ -49,7 +49,7 @@
   <customwidget>
    <class>StratView</class>
    <extends>QGraphicsView</extends>
-   <header location="global">StratView.h</header>
+   <header location="global">DataView/StratView/StratView.h</header>
   </customwidget>
  </customwidgets>
  <resources/>
diff --git a/Applications/DataExplorer/VtkVis/MeshFromRasterDialog.cpp b/Applications/DataExplorer/VtkVis/MeshFromRasterDialog.cpp
index f8550a499e9f49bd7c84d3a110cc2d18ee642ac3..02ed5a11c8ce9eed0013bd11de40c4e09debc8bf 100644
--- a/Applications/DataExplorer/VtkVis/MeshFromRasterDialog.cpp
+++ b/Applications/DataExplorer/VtkVis/MeshFromRasterDialog.cpp
@@ -15,7 +15,7 @@
 #include "MeshFromRasterDialog.h"
 
 #include "MeshGenerators/VtkMeshConverter.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 
 MeshFromRasterDialog::MeshFromRasterDialog(QDialog* parent)
     : QDialog(parent), _mesh_name("mesh"), _array_name("MaterialIDs")
diff --git a/Applications/DataExplorer/VtkVis/VisualizationWidget.cpp b/Applications/DataExplorer/VtkVis/VisualizationWidget.cpp
index 30a542e139ed1cf47a9eec08957bc5fb752a5e53..c9ba487f87ad5abaf9de69645391f2b375aa6fdf 100644
--- a/Applications/DataExplorer/VtkVis/VisualizationWidget.cpp
+++ b/Applications/DataExplorer/VtkVis/VisualizationWidget.cpp
@@ -41,7 +41,7 @@
 #include <QString>
 #include <cmath>
 
-#include "Point.h"
+#include "GeoLib/Point.h"
 #include "VtkCustomInteractorStyle.h"
 #include "VtkPickCallback.h"
 
diff --git a/Applications/DataExplorer/VtkVis/VtkCompositeGeoObjectFilter.h b/Applications/DataExplorer/VtkVis/VtkCompositeGeoObjectFilter.h
index e516e3d96b3d41765fb8bcc6197def02dc13883a..485d5e61bde9d2491a1a6f3d65a1b7a88423fb42 100644
--- a/Applications/DataExplorer/VtkVis/VtkCompositeGeoObjectFilter.h
+++ b/Applications/DataExplorer/VtkVis/VtkCompositeGeoObjectFilter.h
@@ -15,7 +15,7 @@
 #pragma once
 
 #include "VtkCompositeFilter.h"
-#include "GeoType.h"
+#include "GeoLib/GeoType.h"
 
 class vtkThreshold;
 
diff --git a/Applications/DataExplorer/VtkVis/VtkCompositeNodeSelectionFilter.h b/Applications/DataExplorer/VtkVis/VtkCompositeNodeSelectionFilter.h
index 095b862684a800640b3acee1cb16621342821664..46e80092edac569cb726b2d705c69528f52e450c 100644
--- a/Applications/DataExplorer/VtkVis/VtkCompositeNodeSelectionFilter.h
+++ b/Applications/DataExplorer/VtkVis/VtkCompositeNodeSelectionFilter.h
@@ -15,7 +15,7 @@
 #pragma once
 
 #include "VtkCompositeFilter.h"
-#include "Point.h"
+#include "GeoLib/Point.h"
 
 #include <vector>
 
diff --git a/Applications/DataExplorer/VtkVis/VtkPointsSource.h b/Applications/DataExplorer/VtkVis/VtkPointsSource.h
index 670e8cc240f2c889de4861591dce344d45b62eb5..2683f8aaec7e50bcb9281655938119aca632a7ff 100644
--- a/Applications/DataExplorer/VtkVis/VtkPointsSource.h
+++ b/Applications/DataExplorer/VtkVis/VtkPointsSource.h
@@ -18,8 +18,7 @@
 #include "VtkAlgorithmProperties.h"
 #include <vtkPolyDataAlgorithm.h>
 
-// GeoLib
-#include "Point.h"
+#include "GeoLib/Point.h"
 
 /**
  * \brief VtkPointsSource is a VTK source object for the visualization
diff --git a/Applications/DataExplorer/VtkVis/VtkSurfacesSource.h b/Applications/DataExplorer/VtkVis/VtkSurfacesSource.h
index f948eff3cfd918d964d9987550ea9ddd13acd475..c0e208ce8882092599d347883081c49a5c588f31 100644
--- a/Applications/DataExplorer/VtkVis/VtkSurfacesSource.h
+++ b/Applications/DataExplorer/VtkVis/VtkSurfacesSource.h
@@ -18,7 +18,7 @@
 #include "VtkAlgorithmProperties.h"
 #include <vtkPolyDataAlgorithm.h>
 
-#include "Surface.h"
+#include "GeoLib/Surface.h"
 
 /**
  * \brief VTK source object for the visualisation of surfaces.
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPipeline.cpp b/Applications/DataExplorer/VtkVis/VtkVisPipeline.cpp
index adc45ead081c5983fec135be5d41e5639e6cbd13..b5fc64fea1c2e51a772402206eca47c48dabb28c 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPipeline.cpp
+++ b/Applications/DataExplorer/VtkVis/VtkVisPipeline.cpp
@@ -51,7 +51,7 @@
 #include "MeshLib/Vtk/VtkMappedMeshSource.h"
 #include "MeshModel.h"
 #include "StationTreeModel.h"
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 #include "VtkAlgorithmProperties.h"
 #include "VtkCompositeElementSelectionFilter.h"
 #include "VtkCompositeGeoObjectFilter.h"
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPipeline.h b/Applications/DataExplorer/VtkVis/VtkVisPipeline.h
index 6b614dcb5e84740878b95297476c2e5e06daa369..cdb387f8d404c208a8f43ea60e558d3b63da7f57 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPipeline.h
+++ b/Applications/DataExplorer/VtkVis/VtkVisPipeline.h
@@ -21,7 +21,7 @@
 #include "GeoLib/GeoType.h"
 #include "GeoLib/Point.h"
 #include "MeshLib/MeshEnums.h"
-#include "TreeModel.h"
+#include "Base/TreeModel.h"
 
 class vtkAlgorithm;
 class vtkDataSet;
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPipelineItem.h b/Applications/DataExplorer/VtkVis/VtkVisPipelineItem.h
index 4a0c4024e3876620a6335f0ceca248cb5452b9cc..2d13126936247369e4362ee1f6f5afeea1979f63 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPipelineItem.h
+++ b/Applications/DataExplorer/VtkVis/VtkVisPipelineItem.h
@@ -19,7 +19,7 @@
 #include <QString>
 #include <QVariant>
 
-#include "TreeItem.h"
+#include "Base/TreeItem.h"
 
 class QStringList;
 class vtkAlgorithm;
diff --git a/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp b/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
index ba59fee94b5c454db4e532f60490276211ace5f2..48b35a7ba4aa0dc8cab0865d490722d3377e8ef6 100644
--- a/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
+++ b/Applications/DataExplorer/VtkVis/VtkVisPipelineView.cpp
@@ -27,10 +27,10 @@
 #include <QSettings>
 
 #include "CheckboxDelegate.h"
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 #include "MeshGenerators/RasterToMesh.h"
 #include "MeshGenerators/VtkMeshConverter.h"
-#include "OGSError.h"
+#include "Base/OGSError.h"
 #include "VtkVisPipeline.h"
 #include "VtkVisPipelineItem.h"
 #include "VtkVisPointSetItem.h"
diff --git a/Applications/DataExplorer/mainwindow.cpp b/Applications/DataExplorer/mainwindow.cpp
index 6c148d1dd0298130e25c657c28b148e87c6cf49c..7fe2fe2e8cdd731f0db69a2151a65e459f420ae8 100644
--- a/Applications/DataExplorer/mainwindow.cpp
+++ b/Applications/DataExplorer/mainwindow.cpp
@@ -82,8 +82,8 @@
 #include "NetCdfConfigureDialog.h"
 #endif  // OGS_USE_NETCDF
 #include "GeoTreeModel.h"
-#include "LastSavedFileDirectory.h"
-#include "OGSError.h"
+#include "Base/LastSavedFileDirectory.h"
+#include "Base/OGSError.h"
 #include "RecentFiles.h"
 #include "SHPImportDialog.h"
 #include "SetNameDialog.h"
diff --git a/Applications/DataExplorer/mainwindow.h b/Applications/DataExplorer/mainwindow.h
index 903cbcadec53ffad5bab2329de7a3cad7280959a..11c3aad1473809e7cf918d1d32b881f1312b0a5d 100644
--- a/Applications/DataExplorer/mainwindow.h
+++ b/Applications/DataExplorer/mainwindow.h
@@ -14,7 +14,7 @@
 
 #include "Applications/DataHolderLib/Project.h"
 
-#include "ImportFileTypes.h"
+#include "Base/ImportFileTypes.h"
 #include "ui_mainwindow.h"
 
 #include "ElementTreeModel.h"