diff --git a/FileIO/XmlIO/Boost/BoostVtuInterface.h b/FileIO/XmlIO/Boost/BoostVtuInterface.h
index 7ea6bb40fa7123ffe04a3cbcd7b31e6154945f6d..57d28ddad450de1b02971eda3add233656dd8c23 100644
--- a/FileIO/XmlIO/Boost/BoostVtuInterface.h
+++ b/FileIO/XmlIO/Boost/BoostVtuInterface.h
@@ -15,7 +15,7 @@
 #ifndef BOOSTVTUINTERFACE_H_
 #define BOOSTVTUINTERFACE_H_
 
-#include "Writer.h"
+#include "FileIO/Writer.h"
 
 #include <string>
 #include <vector>
@@ -23,7 +23,7 @@
 #include <boost/property_tree/ptree.hpp>
 #include <boost/optional.hpp>
 
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 
 typedef boost::optional<const boost::property_tree::ptree&> OptionalPtree;
 
diff --git a/GeoLib/AnalyticalGeometry.h b/GeoLib/AnalyticalGeometry.h
index 1fdc64904d1cfac8f8bb68dea0c7f06e7746fa5a..2c89448f72a7d97805c22f6baad7e77a49392418 100644
--- a/GeoLib/AnalyticalGeometry.h
+++ b/GeoLib/AnalyticalGeometry.h
@@ -15,13 +15,12 @@
 #ifndef ANALYTICAL_GEOMETRY_H_
 #define ANALYTICAL_GEOMETRY_H_
 
-// GeoLib
+#include "MathLib/LinAlg/Dense/DenseMatrix.h"
+#include "MathLib/Vector3.h"
+
 #include "Triangle.h"
 #include "PointVec.h"
 
-// MathLib
-#include "LinAlg/Dense/DenseMatrix.h"
-#include "Vector3.h"
 
 namespace GeoLib
 {
diff --git a/GeoLib/MinimalBoundingSphere.h b/GeoLib/MinimalBoundingSphere.h
index 1c4777d00c93aa78e043bf8bb79efd2313e47842..13c6a213feb5058a354b2fa79de5c9dcd0b38315 100644
--- a/GeoLib/MinimalBoundingSphere.h
+++ b/GeoLib/MinimalBoundingSphere.h
@@ -18,7 +18,7 @@
 
 #include <vector>
 
-#include "Vector3.h"
+#include "MathLib/Vector3.h"
 #include "Point.h"
 
 namespace GeoLib
diff --git a/MeshLib/CMakeLists.txt b/MeshLib/CMakeLists.txt
index a4c120e0ef56a9af56827a2e4c27482edf12d45e..0c4f19ccae49e4ab5eb7f3b7ecd59e44acaa2430 100644
--- a/MeshLib/CMakeLists.txt
+++ b/MeshLib/CMakeLists.txt
@@ -9,14 +9,6 @@ SET ( SOURCES ${SOURCES_MESHLIB} ${SOURCES_ELEMENTS} ${SOURCES_EDITING} ${SOURCE
 # Create the library
 ADD_LIBRARY(MeshLib STATIC ${SOURCES})
 
-include_directories(
-	.
-	../BaseLib
-	../GeoLib
-	../MathLib
-)
-
-
 target_link_libraries (MeshLib
 	BaseLib
 	GeoLib
diff --git a/MeshLib/Elements/Cell.cpp b/MeshLib/Elements/Cell.cpp
index 45d5dca6e9be13342aec9957ff1a608baa9c1855..e9a549e94d061ce3930bffe01e8c6d86240c0546 100644
--- a/MeshLib/Elements/Cell.cpp
+++ b/MeshLib/Elements/Cell.cpp
@@ -13,8 +13,9 @@
  */
 
 #include "Cell.h"
-#include "Node.h"
-#include "Vector3.h"
+
+#include "MathLib/Vector3.h"
+#include "MeshLib/Node.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/Element.cpp b/MeshLib/Elements/Element.cpp
index 276c19d8d85c0718abb15926ea28cdfe3f555257..e4e99e0268a7fb89c8fc52bf9552072eb770eb1f 100644
--- a/MeshLib/Elements/Element.cpp
+++ b/MeshLib/Elements/Element.cpp
@@ -12,13 +12,14 @@
  *
  */
 
+#include "Element.h"
+
 #include "logog/include/logog.hpp"
 
-#include "Element.h"
-#include "Node.h"
-#include "Line.h"
+#include "MathLib/MathTools.h"
+#include "MeshLib/Node.h"
 
-#include "MathTools.h"
+#include "Line.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/Face.cpp b/MeshLib/Elements/Face.cpp
index 23bdafb8b052c4fd14dffe48f2e41158cd8f30ca..f741b6e4baaa80568b89efbe4d543ccf9eeb5524 100644
--- a/MeshLib/Elements/Face.cpp
+++ b/MeshLib/Elements/Face.cpp
@@ -13,12 +13,11 @@
  */
 
 #include "Face.h"
-#include "Line.h"
-#include "Node.h"
 
-#include "MathTools.h"
-#include "Vector3.h"
+#include "MathLib/MathTools.h"
+#include "MathLib/Vector3.h"
 
+#include "Line.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/Face.h b/MeshLib/Elements/Face.h
index d9a5ad0babfb597da6c7960fb4adf0b36517229c..b338d7a2694f279cdb27b2ea5163fdde91d52d7f 100644
--- a/MeshLib/Elements/Face.h
+++ b/MeshLib/Elements/Face.h
@@ -17,12 +17,11 @@
 
 #include <limits>
 
-#include "Element.h"
+#include "GeoLib/Point.h"
 
-// GeoLib
-#include "Point.h"
+#include "MathLib/Vector3.h"
 
-#include "Vector3.h"
+#include "Element.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/FemElem.h b/MeshLib/Elements/FemElem.h
index a7e90822fc1534060baf9c144391ec6ff2dfcb5f..b604a313e22905686cc6be42d8599e63c8d6c8c8 100644
--- a/MeshLib/Elements/FemElem.h
+++ b/MeshLib/Elements/FemElem.h
@@ -15,7 +15,8 @@
 #ifndef FEMELEM_H_
 #define FEMELEM_H_
 
-#include "Point.h"
+// GeoLib
+#include "GeoLib/Point.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/TemplateHex-impl.h b/MeshLib/Elements/TemplateHex-impl.h
index 7a462b3357980099c836350cebbd780b19a9decd..82b78a80f0f7b50e1d514bc34d2c3b707e9efef4 100644
--- a/MeshLib/Elements/TemplateHex-impl.h
+++ b/MeshLib/Elements/TemplateHex-impl.h
@@ -14,11 +14,12 @@
 
 #include "logog/include/logog.hpp"
 
-#include "Node.h"
+#include "GeoLib/AnalyticalGeometry.h"
+#include "MeshLib/Node.h"
+
 #include "Quad.h"
 #include "Prism.h"
 
-#include "AnalyticalGeometry.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/TemplateHex.h b/MeshLib/Elements/TemplateHex.h
index 43231955e5ccd4d44aa4c7f1ecb47733cc6497f3..6566be8670dc02842d388f774e4647f1b9031523 100644
--- a/MeshLib/Elements/TemplateHex.h
+++ b/MeshLib/Elements/TemplateHex.h
@@ -16,7 +16,7 @@
 #define TEMPLATEHEX_H_
 
 #include <array>
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 #include "Cell.h"
 
 namespace MeshLib {
diff --git a/MeshLib/Elements/TemplateLine.h b/MeshLib/Elements/TemplateLine.h
index 3a3d661baea87eedf4d177037a983a9b2bbc0ca6..11f275e523f10137c86ab62f94bb3c3c94cce6cb 100644
--- a/MeshLib/Elements/TemplateLine.h
+++ b/MeshLib/Elements/TemplateLine.h
@@ -19,12 +19,12 @@
 #include <limits>
 #include <cmath>
 
-#include "MeshEnums.h"
-#include "Element.h"
-#include "Node.h"
+#include "MathLib/MathTools.h"
 
-#include "MathTools.h"
+#include "MeshLib/MeshEnums.h"
+#include "MeshLib/Node.h"
 
+#include "Element.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Elements/TemplatePrism-impl.h b/MeshLib/Elements/TemplatePrism-impl.h
index b460682cd20d5014e2498d874771521e38b8046a..392220ee8a589f3d97372ff7e34c76d5ef66b45b 100644
--- a/MeshLib/Elements/TemplatePrism-impl.h
+++ b/MeshLib/Elements/TemplatePrism-impl.h
@@ -15,13 +15,12 @@
 // Thirdparty
 #include "logog/include/logog.hpp"
 
-#include "Node.h"
+#include "GeoLib/AnalyticalGeometry.h"
+#include "MeshLib/Node.h"
+
 #include "Tri.h"
-#include "Pyramid.h"
 #include "Quad.h"
 
-#include "AnalyticalGeometry.h"
-
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLPRISMTYPE>
diff --git a/MeshLib/Elements/TemplatePrism.h b/MeshLib/Elements/TemplatePrism.h
index ea98f9ce71fb009c14a54cf665b834bdc5bfeedb..28147429f9cfd89626956b5e68fe7cc41df1679a 100644
--- a/MeshLib/Elements/TemplatePrism.h
+++ b/MeshLib/Elements/TemplatePrism.h
@@ -16,7 +16,7 @@
 #define TEMPLATEPRISM_H_
 
 #include <array>
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 #include "Cell.h"
 
 namespace MeshLib {
diff --git a/MeshLib/Elements/TemplatePyramid-impl.h b/MeshLib/Elements/TemplatePyramid-impl.h
index a1a3f6ee5413daf7e5dccb57056aad7dd6150109..35166030c12054342c1181418fcb56ceff4ac425 100644
--- a/MeshLib/Elements/TemplatePyramid-impl.h
+++ b/MeshLib/Elements/TemplatePyramid-impl.h
@@ -15,13 +15,12 @@
 // Thirdparty
 #include "logog/include/logog.hpp"
 
-#include "Node.h"
+#include "GeoLib/AnalyticalGeometry.h"
+#include "MeshLib/Node.h"
+
 #include "Tri.h"
-#include "Tet.h"
 #include "Quad.h"
 
-#include "AnalyticalGeometry.h"
-
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLPYRAMIDTYPE>
diff --git a/MeshLib/Elements/TemplatePyramid.h b/MeshLib/Elements/TemplatePyramid.h
index 620075d88c404f532f2fc839c4965b50752da814..648c0e7ea2fa2c8ee976c9c1f8f7f74a6ebc5409 100644
--- a/MeshLib/Elements/TemplatePyramid.h
+++ b/MeshLib/Elements/TemplatePyramid.h
@@ -16,7 +16,7 @@
 #define TEMPLATEPYRAMID_H_
 
 #include <array>
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 #include "Cell.h"
 
 namespace MeshLib {
diff --git a/MeshLib/Elements/TemplateQuad-impl.h b/MeshLib/Elements/TemplateQuad-impl.h
index 23829e4974ad9cc0d8499b57fcaafee60f117838..f7df20f2eec66ece99c797640f7564ec068cb469 100644
--- a/MeshLib/Elements/TemplateQuad-impl.h
+++ b/MeshLib/Elements/TemplateQuad-impl.h
@@ -14,12 +14,10 @@
 
 #include <array>
 
-#include "Node.h"
-#include "Tri.h"
+#include "MeshLib/Node.h"
 
-// MathLib
-#include "MathTools.h"
-#include "AnalyticalGeometry.h"
+#include "MathLib/MathTools.h"
+#include "GeoLib/AnalyticalGeometry.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/Elements/TemplateQuad.h b/MeshLib/Elements/TemplateQuad.h
index 407c2b98056e693b2319d30436cd30b69e3d3cf4..a80230bd430f029f0ddf93fac95b445ced78f211 100644
--- a/MeshLib/Elements/TemplateQuad.h
+++ b/MeshLib/Elements/TemplateQuad.h
@@ -16,7 +16,7 @@
 #define TEMPLATEQUAD_H_
 
 #include <array>
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 #include "Face.h"
 
 namespace MeshLib {
diff --git a/MeshLib/Elements/TemplateTet-impl.h b/MeshLib/Elements/TemplateTet-impl.h
index 5d70c1778a6e9756ce27911acfc46312051bf594..67c032850f5580bb8c81a30222b0111ccfc91335 100644
--- a/MeshLib/Elements/TemplateTet-impl.h
+++ b/MeshLib/Elements/TemplateTet-impl.h
@@ -14,11 +14,10 @@
 
 #include "logog/include/logog.hpp"
 
-#include "Node.h"
+#include "GeoLib/AnalyticalGeometry.h"
+#include "MeshLib/Node.h"
 #include "Tri.h"
 
-#include "AnalyticalGeometry.h"
-
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLTETTYPE>
diff --git a/MeshLib/Elements/TemplateTet.h b/MeshLib/Elements/TemplateTet.h
index 7fee311b3484c277eaa9eb096630529e7cfb7d23..29bffdde3dc3f6c77a91ecfe794eef05ca841800 100644
--- a/MeshLib/Elements/TemplateTet.h
+++ b/MeshLib/Elements/TemplateTet.h
@@ -16,7 +16,7 @@
 #define TEMPLATETET_H_
 
 #include <array>
-#include "MeshEnums.h"
+#include "MeshLib/MeshEnums.h"
 #include "Cell.h"
 
 namespace MeshLib {
diff --git a/MeshLib/Elements/TemplateTri-impl.h b/MeshLib/Elements/TemplateTri-impl.h
index 04f2f581e27bd33c28c2bc6e62efeedce8a163db..df90c64b73b5a71fb9844deca31ed1a214f80be0 100644
--- a/MeshLib/Elements/TemplateTri-impl.h
+++ b/MeshLib/Elements/TemplateTri-impl.h
@@ -12,9 +12,6 @@
  *
  */
 
-// MathLib
-#include "AnalyticalGeometry.h"
-
 namespace MeshLib {
 
 template <unsigned NNODES, CellType CELLTRITYPE>
diff --git a/MeshLib/Elements/TemplateTri.h b/MeshLib/Elements/TemplateTri.h
index 0ddaf4983489263af8efce6e282a867376b0413c..4ef0afa29212ef1b3ac78e812c5f72972d48dbcb 100644
--- a/MeshLib/Elements/TemplateTri.h
+++ b/MeshLib/Elements/TemplateTri.h
@@ -16,14 +16,16 @@
 #define TEMPLATETRI_H_
 
 #include <array>
-#include "Line.h"
-#include "Node.h"
-#include "Face.h"
-#include "MeshEnums.h"
 
-#include "MathTools.h"
-#include "AnalyticalGeometry.h"
+#include "GeoLib/AnalyticalGeometry.h"
+
+#include "MathLib/MathTools.h"
 
+#include "MeshLib/MeshEnums.h"
+#include "MeshLib/Node.h"
+
+#include "Face.h"
+#include "Line.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/Mesh.cpp b/MeshLib/Mesh.cpp
index 546b73ebf9774a6f6c784fbe9e40d4d1a583733c..ac6cc90d1b67214dc97b0fde32a46cde497b0326 100644
--- a/MeshLib/Mesh.cpp
+++ b/MeshLib/Mesh.cpp
@@ -12,11 +12,14 @@
  *
  */
 
-#include "boost/optional.hpp"
-
 #include "Mesh.h"
 
-#include "Node.h"
+#include <boost/optional.hpp>
+
+#include "logog/include/logog.hpp"
+
+#include "BaseLib/RunTime.h"
+
 #include "Elements/Tri.h"
 #include "Elements/Quad.h"
 #include "Elements/Tet.h"
@@ -24,11 +27,6 @@
 #include "Elements/Pyramid.h"
 #include "Elements/Prism.h"
 
-#include "logog/include/logog.hpp"
-
-#include "RunTime.h"
-#include "uniqueInsert.h"
-
 namespace MeshLib
 {
 
diff --git a/MeshLib/Mesh.h b/MeshLib/Mesh.h
index ef7785a212aaf6324504ac35163a5eb511e327c3..ce1dddbd1d0a8c97bb7e680c6e4675f861218da7 100644
--- a/MeshLib/Mesh.h
+++ b/MeshLib/Mesh.h
@@ -19,10 +19,10 @@
 #include <string>
 #include <vector>
 
-#include "MeshEnums.h"
-
 #include "BaseLib/Counter.h"
 
+#include "MeshEnums.h"
+
 namespace MeshLib
 {
 	class Node;
diff --git a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
index c853898d1c0a145aec8f45e904ad13b958fa5890..ad0f3ba33380dc51d61b9790b2248015714cf4f6 100644
--- a/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
+++ b/MeshLib/MeshEditing/DuplicateMeshComponents.cpp
@@ -14,16 +14,15 @@
 
 #include "DuplicateMeshComponents.h"
 
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Element.h"
-#include "Elements/Line.h"
-#include "Elements/Tri.h"
-#include "Elements/Quad.h"
-#include "Elements/Tet.h"
-#include "Elements/Hex.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Prism.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Prism.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshEditing/ElementExtraction.cpp b/MeshLib/MeshEditing/ElementExtraction.cpp
index 698f983ca993cb84b19daf7780a0e7e8ee0aa4fd..5b0d35dbf964346f318d300d8fc78d021280e795 100644
--- a/MeshLib/MeshEditing/ElementExtraction.cpp
+++ b/MeshLib/MeshEditing/ElementExtraction.cpp
@@ -13,14 +13,17 @@
  */
 
 #include "ElementExtraction.h"
-#include "Mesh.h"
-#include "Elements/Element.h"
-#include "MeshEditing/DuplicateMeshComponents.h"
-#include "AABB.h"
-#include "MeshQuality/MeshValidation.h"
 
 #include "logog/include/logog.hpp"
 
+#include "GeoLib/AABB.h"
+
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/MeshQuality/MeshValidation.h"
+
+#include "DuplicateMeshComponents.h"
+
 namespace MeshLib {
 
 ElementExtraction::ElementExtraction(const MeshLib::Mesh &mesh)
diff --git a/MeshLib/MeshEditing/ElementExtraction.h b/MeshLib/MeshEditing/ElementExtraction.h
index 9e01ff3b1aab4e247f34ded1a29a79cfd75271ba..dfe268c78703750cd65b583e98fbd90b7f734d51 100644
--- a/MeshLib/MeshEditing/ElementExtraction.h
+++ b/MeshLib/MeshEditing/ElementExtraction.h
@@ -17,8 +17,8 @@
 
 #include <string>
 #include <vector>
-#include "MeshEnums.h"
-#include "Node.h"
+#include "MeshLib/MeshEnums.h"
+#include "MeshLib/Node.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshEditing/ElementValueModification.cpp b/MeshLib/MeshEditing/ElementValueModification.cpp
index 34976808ce1c7cf56076f91459e87b2d72216127..092cc2f7cc594eb585f0b085b0f97a8d7fbb5740 100644
--- a/MeshLib/MeshEditing/ElementValueModification.cpp
+++ b/MeshLib/MeshEditing/ElementValueModification.cpp
@@ -12,14 +12,16 @@
  *
  */
 
-#include <algorithm>
-
 #include "ElementValueModification.h"
-#include "Mesh.h"
-#include "Elements/Element.h"
+
+#include <algorithm>
 
 #include "logog/include/logog.hpp"
 
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Elements/Element.h"
+
+
 namespace MeshLib {
 
 std::vector<unsigned> ElementValueModification::getMeshValues(const MeshLib::Mesh &mesh)
diff --git a/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp b/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp
index 4f9ffafe00a60421aafcbb90b61e46805956b8ae..41ac0f37ad53ecacec98e7314f2fe077609e6c80 100644
--- a/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp
+++ b/MeshLib/MeshEditing/Mesh2MeshPropertyInterpolation.cpp
@@ -19,14 +19,12 @@
 
 #include "logog/include/logog.hpp"
 
-// GeoLib
-#include "AABB.h"
-#include "Grid.h"
-
-// MeshLib
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Face.h"
+#include "GeoLib/AABB.h"
+#include "GeoLib/Grid.h"
+
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Face.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshEditing/MeshRevision.cpp b/MeshLib/MeshEditing/MeshRevision.cpp
index 91b56f92d4636557ea9e5b04a6139da8bdcdd1c5..76ccbc40a88b9f5234aac50ffce337f926904512 100644
--- a/MeshLib/MeshEditing/MeshRevision.cpp
+++ b/MeshLib/MeshEditing/MeshRevision.cpp
@@ -17,20 +17,17 @@
 // ThirdParty/logog
 #include "logog/include/logog.hpp"
 
-// GeoLib
-#include "Grid.h"
-
-// MeshLib
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Element.h"
-#include "Elements/Line.h"
-#include "Elements/Tri.h"
-#include "Elements/Quad.h"
-#include "Elements/Tet.h"
-#include "Elements/Hex.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Prism.h"
+#include "GeoLib/Grid.h"
+
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Prism.h"
 
 #include "DuplicateMeshComponents.h"
 
diff --git a/MeshLib/MeshEditing/MeshRevision.h b/MeshLib/MeshEditing/MeshRevision.h
index 1b9dfd7e49d85810a3c5422696e011344afe9631..17406116356eb942022b1f78869fb18d2cb6b761 100644
--- a/MeshLib/MeshEditing/MeshRevision.h
+++ b/MeshLib/MeshEditing/MeshRevision.h
@@ -19,7 +19,6 @@
 #include <limits>
 #include <string>
 #include <vector>
-#include <cstddef>
 
 // forward declaration
 namespace MeshLib {
diff --git a/MeshLib/MeshEditing/moveMeshNodes.h b/MeshLib/MeshEditing/moveMeshNodes.h
index 159e6d9a567eebc7e3ad407e20ca5a0741458891..58273ccd8515e7f565e0fb4f41482dfcf1bad441 100644
--- a/MeshLib/MeshEditing/moveMeshNodes.h
+++ b/MeshLib/MeshEditing/moveMeshNodes.h
@@ -13,7 +13,7 @@
 #ifndef MOVEMESHNODES_H_
 #define MOVEMESHNODES_H_
 
-#include "Node.h"
+#include "MeshLib/Node.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshEditing/removeMeshNodes.cpp b/MeshLib/MeshEditing/removeMeshNodes.cpp
index 491ff45a9ebc2962e9dda032d32dd7a609fa396c..6e357578de273aede7061f2a1039224f9bdabcc4 100644
--- a/MeshLib/MeshEditing/removeMeshNodes.cpp
+++ b/MeshLib/MeshEditing/removeMeshNodes.cpp
@@ -13,9 +13,10 @@
  */
 
 #include "removeMeshNodes.h"
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Element.h"
+
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Element.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshGenerators/ConvertRasterToMesh.cpp b/MeshLib/MeshGenerators/ConvertRasterToMesh.cpp
index 5fcfbfab7e1665a3942933ca2a0e736cfde7551c..4cb54f6c11e3de1f96d1084e189395320111ad2c 100644
--- a/MeshLib/MeshGenerators/ConvertRasterToMesh.cpp
+++ b/MeshLib/MeshGenerators/ConvertRasterToMesh.cpp
@@ -13,10 +13,9 @@
 
 #include "ConvertRasterToMesh.h"
 
-// MeshLib
-#include "Node.h"
-#include "Elements/Tri.h"
-#include "Elements/Quad.h"
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Quad.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshGenerators/ConvertRasterToMesh.h b/MeshLib/MeshGenerators/ConvertRasterToMesh.h
index 0aae395cf2c0fc4a561217bad7fa0d2b050553b5..02c910aae5be522a5cf0a877ee8e8243a113a582 100644
--- a/MeshLib/MeshGenerators/ConvertRasterToMesh.h
+++ b/MeshLib/MeshGenerators/ConvertRasterToMesh.h
@@ -15,11 +15,8 @@
 #ifndef CONVERTRASTERTOMESH_H_
 #define CONVERTRASTERTOMESH_H_
 
-// GeoLib
-#include "Raster.h"
-
-// MeshLib
-#include "MeshEnums.h"
+#include "GeoLib/Raster.h"
+#include "MeshLib/MeshEnums.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshGenerators/LayeredMeshGenerator.cpp b/MeshLib/MeshGenerators/LayeredMeshGenerator.cpp
index d16106a875b0711133a68f293881369d6c8df60b..982d5475a3808380a2e874bd2815b3d8027422cf 100644
--- a/MeshLib/MeshGenerators/LayeredMeshGenerator.cpp
+++ b/MeshLib/MeshGenerators/LayeredMeshGenerator.cpp
@@ -19,12 +19,12 @@
 
 #include "FileIO/AsciiRasterInterface.h"
 
-#include "Raster.h"
+#include "GeoLib/Raster.h"
 
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Element.h"
-#include "MeshQuality/MeshValidation.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/MeshQuality/MeshValidation.h"
 
 LayeredMeshGenerator::LayeredMeshGenerator()
 : _elevation_epsilon(0.0001)
diff --git a/MeshLib/MeshGenerators/LayeredVolume.cpp b/MeshLib/MeshGenerators/LayeredVolume.cpp
index 3263dcb0343c30bc69accbfb9605e2c0e53c5409..7fff70c2d803fc5ec8b020cf03b8ff25f858f5ae 100644
--- a/MeshLib/MeshGenerators/LayeredVolume.cpp
+++ b/MeshLib/MeshGenerators/LayeredVolume.cpp
@@ -14,14 +14,15 @@
 
 #include "LayeredVolume.h"
 
-#include "Vector3.h"
+#include "MathLib/Vector3.h"
 
-#include "Raster.h"
+#include "GeoLib/Raster.h"
 
-#include "Elements/Tri.h"
-#include "Elements/Quad.h"
-#include "MeshGenerators/MeshLayerMapper.h"
-#include "MeshEditing/ElementExtraction.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/MeshEditing/ElementExtraction.h"
+
+#include "MeshLayerMapper.h"
 
 
 bool LayeredVolume::createRasterLayers(const MeshLib::Mesh &mesh, const std::vector<GeoLib::Raster const*> &rasters, double noDataReplacementValue)
diff --git a/MeshLib/MeshGenerators/LayeredVolume.h b/MeshLib/MeshGenerators/LayeredVolume.h
index 9d6a2560df47d3ecc6ef2892f126fb9e10b6d0bd..1628944daee020c28d9ba0e0891582bee543b0c3 100644
--- a/MeshLib/MeshGenerators/LayeredVolume.h
+++ b/MeshLib/MeshGenerators/LayeredVolume.h
@@ -18,7 +18,7 @@
 #include <string>
 #include <vector>
 
-#include "Node.h"
+#include "MeshLib/Node.h"
 #include "LayeredMeshGenerator.h"
 
 namespace GeoLib {
diff --git a/MeshLib/MeshGenerators/MeshGenerator.cpp b/MeshLib/MeshGenerators/MeshGenerator.cpp
index 1963417678db915d8796261cb6941a6fc0f301fe..f4480282cd5b6690b0bc26e0d57c415ac0846128 100644
--- a/MeshLib/MeshGenerators/MeshGenerator.cpp
+++ b/MeshLib/MeshGenerators/MeshGenerator.cpp
@@ -13,15 +13,16 @@
  */
 
 #include "MeshGenerator.h"
-#include "Node.h"
-
-#include "Elements/Line.h"
-#include "Elements/Quad.h"
-#include "Elements/Hex.h"
-#include "Elements/Tri.h"
 
 #include <vector>
 
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Tri.h"
+
+
 namespace MeshLib
 {
 Mesh* MeshGenerator::generateLineMesh(
diff --git a/MeshLib/MeshGenerators/MeshLayerMapper.cpp b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
index c56b846d7089d364e21ead757fad6eb349914d5a..6ce15970ad2b1c1a9ce11e562d54d24e7fc2a6dd 100644
--- a/MeshLib/MeshGenerators/MeshLayerMapper.cpp
+++ b/MeshLib/MeshGenerators/MeshLayerMapper.cpp
@@ -20,15 +20,15 @@
 
 #include "FileIO/AsciiRasterInterface.h"
 
-#include "Raster.h"
+#include "GeoLib/Raster.h"
 
-#include "Elements/Tet.h"
-#include "Elements/Hex.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Prism.h"
-#include "MeshSurfaceExtraction.h"
+#include "MathLib/MathTools.h"
 
-#include "MathTools.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/MeshSurfaceExtraction.h"
 
 const unsigned MeshLayerMapper::_pyramid_base[3][4] =
 {
diff --git a/MeshLib/MeshInformation.h b/MeshLib/MeshInformation.h
index cf3432f2f629aefd19b1360a8a19fb9f004b8be3..c151d63d85d203e20b3e47eff6e3a33cf85570ce 100644
--- a/MeshLib/MeshInformation.h
+++ b/MeshLib/MeshInformation.h
@@ -16,8 +16,7 @@
 #define MESHINFORMATION_H
 
 #include <array>
-
-#include "AABB.h"
+#include "GeoLib/AABB.h"
 #include "Node.h"
 
 namespace MeshLib {
diff --git a/MeshLib/MeshQuality/AngleSkewMetric.cpp b/MeshLib/MeshQuality/AngleSkewMetric.cpp
index 8c89da67eb4904ec3b35e4a41d2fa52691954dc9..1c93230ed5b0a3182e6f0a6290eb5d0d8d34417b 100644
--- a/MeshLib/MeshQuality/AngleSkewMetric.cpp
+++ b/MeshLib/MeshQuality/AngleSkewMetric.cpp
@@ -13,12 +13,13 @@
  */
 
 #include "AngleSkewMetric.h"
-#include "Node.h"
-
-#include "MathTools.h"
 
 #include <cmath>
 
+#include "MeshLib/Node.h"
+
+#include "MathLib/MathTools.h"
+
 #ifndef M_PI
 #define M_PI 3.14159265358979323846
 #endif
diff --git a/MeshLib/MeshQuality/AreaMetric.cpp b/MeshLib/MeshQuality/AreaMetric.cpp
index 758e161b706726aa22405ef72210c5b6f896d47b..15961c6d4acb6361423771043f1b19f899755f65 100644
--- a/MeshLib/MeshQuality/AreaMetric.cpp
+++ b/MeshLib/MeshQuality/AreaMetric.cpp
@@ -14,7 +14,7 @@
 
 
 #include "AreaMetric.h"
-#include "MathTools.h"
+#include "MathLib/MathTools.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshQuality/EdgeRatioMetric.cpp b/MeshLib/MeshQuality/EdgeRatioMetric.cpp
index 17e224d22bb138f8a0e02813b84eaf7ede97afef..eeace73ed1d337a1faeec0e0732c24f087d0ae23 100644
--- a/MeshLib/MeshQuality/EdgeRatioMetric.cpp
+++ b/MeshLib/MeshQuality/EdgeRatioMetric.cpp
@@ -13,8 +13,9 @@
  */
 
 #include "EdgeRatioMetric.h"
-#include "Node.h"
-#include "MathTools.h"
+
+#include "MathLib/MathTools.h"
+#include "MeshLib/Node.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshQuality/EdgeRatioMetric.h b/MeshLib/MeshQuality/EdgeRatioMetric.h
index eadfbeaca931c1cad77137306144749d7695e685..ad5032151f822278856597d2903c68f26f8ea668 100644
--- a/MeshLib/MeshQuality/EdgeRatioMetric.h
+++ b/MeshLib/MeshQuality/EdgeRatioMetric.h
@@ -16,7 +16,7 @@
 #define EDGERATIOMETRIC_H_
 
 #include "ElementQualityMetric.h"
-#include "Point.h"
+#include "GeoLib/Point.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshQuality/ElementQualityMetric.cpp b/MeshLib/MeshQuality/ElementQualityMetric.cpp
index 287df5edbc00590628956c905555d27341c1d386..e7ca69dfad47f7f14577993b350315c1566def99 100644
--- a/MeshLib/MeshQuality/ElementQualityMetric.cpp
+++ b/MeshLib/MeshQuality/ElementQualityMetric.cpp
@@ -13,11 +13,13 @@
  */
 
 #include "ElementQualityMetric.h"
-#include "Node.h"
-#include "Point.h"
+
 #include <cmath>
 #include <iostream>
 
+#include "GeoLib/Point.h"
+#include "MeshLib/Node.h"
+
 namespace MeshLib
 {
 ElementQualityMetric::ElementQualityMetric(Mesh const& mesh) :
diff --git a/MeshLib/MeshQuality/ElementQualityMetric.h b/MeshLib/MeshQuality/ElementQualityMetric.h
index 5ce2575c0f7f095f15099505e92d44057c4b6648..88fc87a615018412503e606b992603ece762c651 100644
--- a/MeshLib/MeshQuality/ElementQualityMetric.h
+++ b/MeshLib/MeshQuality/ElementQualityMetric.h
@@ -17,14 +17,12 @@
 
 #include <vector>
 
-// BaseLib
-#include "Histogram.h"
+#include "logog/include/logog.hpp"
 
-// MSH
-#include "Mesh.h"
-#include "Elements/Element.h"
+#include "BaseLib/Histogram.h"
 
-#include "logog/include/logog.hpp"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Elements/Element.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshQuality/MeshValidation.cpp b/MeshLib/MeshQuality/MeshValidation.cpp
index 3c5eb3402ea203089e8b51c0977918fb4ed5a0f7..fb019452772f4c95b12a1912a498911213dfcc74 100644
--- a/MeshLib/MeshQuality/MeshValidation.cpp
+++ b/MeshLib/MeshQuality/MeshValidation.cpp
@@ -18,11 +18,11 @@
 
 #include "logog/include/logog.hpp"
 
-#include "Mesh.h"
-#include "Node.h"
-#include "Elements/Element.h"
-#include "MeshEditing/removeMeshNodes.h"
-#include "MeshEditing/MeshRevision.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Node.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/MeshEditing/removeMeshNodes.h"
+#include "MeshLib/MeshEditing/MeshRevision.h"
 
 namespace MeshLib {
 
diff --git a/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp b/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp
index bb6bb3b7396f92870aba85d0e9f1d022fc852baf..60c44b34cfda081e07a3d936134ffa71bab4072d 100644
--- a/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp
+++ b/MeshLib/MeshQuality/RadiusEdgeRatioMetric.cpp
@@ -14,8 +14,8 @@
 
 #include "RadiusEdgeRatioMetric.h"
 
-#include "Node.h"
-#include "MinimalBoundingSphere.h"
+#include "GeoLib/MinimalBoundingSphere.h"
+#include "MeshLib/Node.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshSearcher.cpp b/MeshLib/MeshSearcher.cpp
index 2fcb015ba46a9cecced0d8c0d3ee0b1caaed6070..6ba37e373d1542aca081b7ec243360ef4b3975d9 100644
--- a/MeshLib/MeshSearcher.cpp
+++ b/MeshLib/MeshSearcher.cpp
@@ -9,12 +9,12 @@
 
 #include "MeshSearcher.h"
 
+#include <algorithm>
+
 #include "Mesh.h"
 #include "Node.h"
 #include "Elements/Element.h"
 
-#include <algorithm>
-
 namespace MeshLib
 {
 
diff --git a/MeshLib/MeshSubset.h b/MeshLib/MeshSubset.h
index 4822afff495345c2071ad6e8d7a08c2db65124fa..7d3ee03f51ffccc63232838679afee65bc7a845c 100644
--- a/MeshLib/MeshSubset.h
+++ b/MeshLib/MeshSubset.h
@@ -15,9 +15,9 @@
 
 #include <vector>
 
-#include "MeshLib/Mesh.h"
-#include "MeshLib/Node.h"
-#include "MeshLib/Elements/Element.h"
+#include "Mesh.h"
+#include "Node.h"
+#include "Elements/Element.h"
 
 
 namespace MeshLib
diff --git a/MeshLib/MeshSubsets.h b/MeshLib/MeshSubsets.h
index ee8fe468d14ddf982bc637348b258a701cc3fb47..96fdf7687b56585b78d22b7e4f4e524794529daf 100644
--- a/MeshLib/MeshSubsets.h
+++ b/MeshLib/MeshSubsets.h
@@ -13,13 +13,13 @@
 #ifndef MESHSUBSETS_H_
 #define MESHSUBSETS_H_
 
-#include <vector>
 #include <algorithm>
-#include <stdexcept>
 #include <functional>
 #include <numeric>
+#include <stdexcept>
+#include <vector>
 
-#include "MeshLib/MeshSubset.h"
+#include "MeshSubset.h"
 
 namespace MeshLib
 {
diff --git a/MeshLib/MeshSurfaceExtraction.cpp b/MeshLib/MeshSurfaceExtraction.cpp
index 16e1944642fcd516ef2be328b9bb00722ef28c5d..14b5ed0c241185947231ab8875e6dbcc789ea663 100644
--- a/MeshLib/MeshSurfaceExtraction.cpp
+++ b/MeshLib/MeshSurfaceExtraction.cpp
@@ -18,9 +18,9 @@
 
 #include "logog/include/logog.hpp"
 
-#include "PointWithID.h"
+#include "GeoLib/PointWithID.h"
+
 #include "Mesh.h"
-#include "Node.h"
 #include "Elements/Face.h"
 #include "Elements/Cell.h"
 #include "Elements/Tri.h"
diff --git a/MeshLib/Node.h b/MeshLib/Node.h
index 927bc0c17e11dc602bb17acf09746b61787a210a..c493e19d544acc8b01389ac363b7d248af07d8e8 100644
--- a/MeshLib/Node.h
+++ b/MeshLib/Node.h
@@ -17,15 +17,17 @@
 
 #include <cstdlib>
 #include <limits>
-#include <vector>
 #include <set>
+#include <vector>
 
 #include "GeoLib/PointWithID.h"
-#include "Mesh.h"
+
 #include "MeshEditing/removeMeshNodes.h"
-#include "MeshSurfaceExtraction.h"
 #include "MeshGenerators/MeshLayerMapper.h"
 
+#include "MeshSurfaceExtraction.h"
+#include "Mesh.h"
+
 namespace MeshLib {
 
 class Element;
diff --git a/MeshLib/convertMeshToGeo.cpp b/MeshLib/convertMeshToGeo.cpp
index d3e0e2148fadb16b8baf0844debac334100690df..cbe71e3269dbd13ea14f94f3d15be0db02fdf994 100644
--- a/MeshLib/convertMeshToGeo.cpp
+++ b/MeshLib/convertMeshToGeo.cpp
@@ -14,16 +14,17 @@
 
 #include "convertMeshToGeo.h"
 
-// ThirdParty/logog
 #include "logog/include/logog.hpp"
 
-#include "GEOObjects.h"
-#include "Surface.h"
+#include "GeoLib/GEOObjects.h"
+namespace GeoLib
+{
+    class Surface;
+}
 
 #include "Mesh.h"
 #include "Elements/Tri.h"
 #include "Elements/Quad.h"
-#include "Node.h"
 #include "MeshInformation.h"
 
 namespace MeshLib {