diff --git a/FileIO/AsciiRasterInterface.cpp b/FileIO/AsciiRasterInterface.cpp
index 572abde497aaeb327151d79e9c2184062700e84c..ebc7f8f54f078c242e90dfd2dccf1371bdbb65e0 100644
--- a/FileIO/AsciiRasterInterface.cpp
+++ b/FileIO/AsciiRasterInterface.cpp
@@ -13,14 +13,12 @@
 
 #include "AsciiRasterInterface.h"
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-#include "Raster.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
+#include "GeoLib/Raster.h"
 
 namespace FileIO {
 
diff --git a/FileIO/CMakeLists.txt b/FileIO/CMakeLists.txt
index ffa5960e411bf3dc364ac0b2113a08dd6a9f9ea9..96435c22b1f479a0205e762e270c63096da3b803 100644
--- a/FileIO/CMakeLists.txt
+++ b/FileIO/CMakeLists.txt
@@ -50,10 +50,6 @@ add_library(FileIO STATIC ${SOURCES})
 
 include_directories(
 	.
-	${CMAKE_CURRENT_SOURCE_DIR}/../BaseLib
-	${CMAKE_CURRENT_SOURCE_DIR}/../GeoLib
-	${CMAKE_CURRENT_SOURCE_DIR}/../MathLib
-	${CMAKE_CURRENT_SOURCE_DIR}/../MeshLib
 	${CMAKE_CURRENT_BINARY_DIR}/../BaseLib
 )
 
diff --git a/FileIO/CsvInterface.h b/FileIO/CsvInterface.h
index 96101780d159a5de21a251a1fa2b0e6032a0de3d..31be7138cf6e4dc488517e9861e6483fd70eae5a 100644
--- a/FileIO/CsvInterface.h
+++ b/FileIO/CsvInterface.h
@@ -21,8 +21,7 @@
 #include <string>
 #include <vector>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
 #include "BaseLib/StringTools.h"
 
diff --git a/FileIO/FEFLOWInterface.cpp b/FileIO/FEFLOWInterface.cpp
index caa07d7b7430af79015ef35daea4bd689ac423f2..b0113da0a04ab8a81da91be35469484953dad6d4 100644
--- a/FileIO/FEFLOWInterface.cpp
+++ b/FileIO/FEFLOWInterface.cpp
@@ -9,24 +9,25 @@
 #include "FEFLOWInterface.h"
 
 #include <cctype>
-
-#include "logog/include/logog.hpp"
 #include <QtXml>
 
-#include "StringTools.h"
-#include "FileTools.h"
-#include "Polygon.h"
-#include "Mesh.h"
-#include "MeshLib/Node.h"
-#include "Elements/Line.h"
-#include "Elements/Hex.h"
-#include "Elements/Prism.h"
-#include "Elements/Quad.h"
-#include "Elements/Tet.h"
-#include "Elements/Tri.h"
-
-// GeoLib
+#include <logog/include/logog.hpp>
+
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
+
+#include "GeoLib/GEOObjects.h"
 #include "GeoLib/Point.h"
+#include "GeoLib/Polygon.h"
+
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/Node.h"
 
 namespace FileIO
 {
diff --git a/FileIO/FEFLOWInterface.h b/FileIO/FEFLOWInterface.h
index d0f5effe163ed67b0c122a930d9210ba587e5c15..32e02e461da3dba22d03fdd534c7a15ac2a5250d 100644
--- a/FileIO/FEFLOWInterface.h
+++ b/FileIO/FEFLOWInterface.h
@@ -14,18 +14,24 @@
 #include <string>
 #include <vector>
 
-#include "GEOObjects.h"
-#include "MeshEnums.h"
+//#include "MeshLib/MeshEnums.h"
 
 class QDomElement;
 class QString;
 
+namespace GeoLib
+{
+    class GEOObjects;
+    class Point;
+    class Polyline;
+}
+
 namespace MeshLib
 {
-class Mesh;
-class Element;
-class Node;
-enum class MeshElemType;
+    class Mesh;
+    class Element;
+    class Node;
+    enum class MeshElemType;
 }
 
 namespace FileIO
diff --git a/FileIO/GMSHInterface.cpp b/FileIO/GMSHInterface.cpp
index 655b83cba8d56cbf9d56f079a0589e0c4faaa5d8..2237d81a186e3ec8a6dd459782d40567167c65eb 100644
--- a/FileIO/GMSHInterface.cpp
+++ b/FileIO/GMSHInterface.cpp
@@ -18,36 +18,32 @@
 #include <fstream>
 #include <vector>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
 #include "BaseLib/BuildInfo.h"
-#include "FileTools.h"
-#include "StringTools.h"
-
-// FileIO
-#include "GMSHInterface.h"
-#include "GmshIO/GMSHAdaptiveMeshDensity.h"
-#include "GmshIO/GMSHFixedMeshDensity.h"
-#include "GmshIO/GMSHNoMeshDensity.h"
-
-// GeoLib
-#include "Point.h"
-#include "Polygon.h"
-#include "Polyline.h"
-#include "PolylineWithSegmentMarker.h"
-#include "QuadTree.h"
-
-// MSH
-#include "Elements/Line.h"
-#include "Elements/Hex.h"
-#include "Elements/Prism.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Quad.h"
-#include "Elements/Tet.h"
-#include "Elements/Tri.h"
-#include "Mesh.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
+
+#include "FileIO/GMSHInterface.h"
+#include "FileIO/GmshIO/GMSHAdaptiveMeshDensity.h"
+#include "FileIO/GmshIO/GMSHFixedMeshDensity.h"
+#include "FileIO/GmshIO/GMSHNoMeshDensity.h"
+
+#include "GeoLib/GEOObjects.h"
+#include "GeoLib/Point.h"
+#include "GeoLib/Polygon.h"
+#include "GeoLib/Polyline.h"
+#include "GeoLib/PolylineWithSegmentMarker.h"
+#include "GeoLib/QuadTree.h"
+
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
 
 namespace FileIO
diff --git a/FileIO/GMSHInterface.h b/FileIO/GMSHInterface.h
index 4840634638bd2b654cfbd8555aa614e8b7f5e835..214bc36b7bb7d8fe4cce1251327293716c5d4497 100644
--- a/FileIO/GMSHInterface.h
+++ b/FileIO/GMSHInterface.h
@@ -15,8 +15,9 @@
 #ifndef GMSHINTERFACE_H_
 #define GMSHINTERFACE_H_
 
-#include <string>
 #include <list>
+#include <map>
+#include <string>
 
 // FileIO
 #include "Writer.h"
@@ -24,11 +25,14 @@
 #include "GmshIO/GMSHPolygonTree.h"
 #include "GmshIO/GMSHMeshDensityStrategy.h"
 
-// GeoLib
-#include "GEOObjects.h"
-#include "Polygon.h"
+namespace GeoLib
+{
+	class GEOObjects;
+	class Polygon;
+}
 
-namespace MeshLib {
+namespace MeshLib
+{
 	class Mesh;
 	class Element;
 	class Node;
diff --git a/FileIO/GMSInterface.cpp b/FileIO/GMSInterface.cpp
index de6d7818abfa4be1259919c387658ef1abcb9368..4a4dd808c267dc52d6253a5ef0c8f4dd8d904594 100644
--- a/FileIO/GMSInterface.cpp
+++ b/FileIO/GMSInterface.cpp
@@ -15,22 +15,22 @@
  * @author Karsten Rink
  */
 
+#include "GMSInterface.h"
+
 #include <fstream>
+#include <logog/include/logog.hpp>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-#include "Elements/Prism.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Tet.h"
-#include "GMSInterface.h"
-#include "Mesh.h"
-#include "MeshEnums.h"
+#include "GeoLib/StationBorehole.h"
+
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/MeshEnums.h"
 #include "MeshLib/Node.h"
-#include "StationBorehole.h"
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
 
 namespace FileIO
 {
diff --git a/FileIO/GMSInterface.h b/FileIO/GMSInterface.h
index cffe9852566cab0c6b43472858247defcb901d14..c853aa6a03a2a3db9baeaa3d3bca68f2a7d3b29b 100644
--- a/FileIO/GMSInterface.h
+++ b/FileIO/GMSInterface.h
@@ -19,14 +19,14 @@
 #define GMSINTERFACE_H_
 
 #include <list>
+#include <string>
 #include <vector>
 
-#include "Point.h"
-
 namespace GeoLib
 {
 class Station;
 class StationBorehole;
+class Point;
 }
 
 namespace MeshLib
diff --git a/FileIO/GmshIO/GMSHAdaptiveMeshDensity.cpp b/FileIO/GmshIO/GMSHAdaptiveMeshDensity.cpp
index 0a66de926babd704b6efe9876fb5ab4a126cb800..9bde52b2f4036a6b82a835fb79757130b7f7f8be 100644
--- a/FileIO/GmshIO/GMSHAdaptiveMeshDensity.cpp
+++ b/FileIO/GmshIO/GMSHAdaptiveMeshDensity.cpp
@@ -15,22 +15,21 @@
  * @author Thomas Fischer
  */
 
+#include "GMSHAdaptiveMeshDensity.h"
+
 #include <list>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// FileIO
-#include "GmshIO/GMSHAdaptiveMeshDensity.h"
 
-// GeoLib
-#include "Polygon.h"
+#include "GeoLib/Point.h"
+#include "GeoLib/Polygon.h"
 #ifndef NDEBUG
-#include "Polyline.h"
+#include "GeoLib/Polyline.h"
 #endif
+#include "GeoLib/QuadTree.h"
 
-// MathLib
-#include "MathTools.h"
+#include "MathLib/MathTools.h"
 
 namespace FileIO
 {
diff --git a/FileIO/GmshIO/GMSHAdaptiveMeshDensity.h b/FileIO/GmshIO/GMSHAdaptiveMeshDensity.h
index e45354b7250282c2de441dbf048391d46a1b1bf7..90ef88cc00c9a2d43a87d5625e81b19342417bbc 100644
--- a/FileIO/GmshIO/GMSHAdaptiveMeshDensity.h
+++ b/FileIO/GmshIO/GMSHAdaptiveMeshDensity.h
@@ -18,15 +18,13 @@
 // FileIO
 #include "GMSHMeshDensityStrategy.h"
 
-// GeoLib
-#include "Point.h"
-#include "QuadTree.h"
-
 namespace GeoLib
 {
-class Polygon;
+    class Polygon;
+    class Point;
+    template <typename T> class QuadTree;
 #ifndef NDEBUG
-class Polyline;
+    class Polyline;
 #endif
 }
 
diff --git a/FileIO/GmshIO/GMSHMeshDensityStrategy.h b/FileIO/GmshIO/GMSHMeshDensityStrategy.h
index 4a63fee1a452d3533f2b99f7233ccba9c31751ec..7f6919dc9bc0f899cd42c2177601c873f6bef72b 100644
--- a/FileIO/GmshIO/GMSHMeshDensityStrategy.h
+++ b/FileIO/GmshIO/GMSHMeshDensityStrategy.h
@@ -15,11 +15,12 @@
 #ifndef GMSHMESHDENSITYSTRATEGY_H_
 #define GMSHMESHDENSITYSTRATEGY_H_
 
-#include <ostream>
 #include <vector>
 
-// GeoLib
-#include "Point.h"
+namespace GeoLib
+{
+    class Point;
+}
 
 namespace FileIO
 {
diff --git a/FileIO/GmshIO/GMSHPolygonTree.cpp b/FileIO/GmshIO/GMSHPolygonTree.cpp
index 1d1bc10ba4514f9c4a761c208b6da96eb32520b3..72e254a1fe06cfeeaabca2a252be4b929a03b557 100644
--- a/FileIO/GmshIO/GMSHPolygonTree.cpp
+++ b/FileIO/GmshIO/GMSHPolygonTree.cpp
@@ -12,12 +12,17 @@
  *
  */
 
-#include "GmshIO/GMSHPolygonTree.h"
+#include "GMSHPolygonTree.h"
 
 #include "GMSHNoMeshDensity.h"
 #include "GMSHFixedMeshDensity.h"
 #include "GMSHAdaptiveMeshDensity.h"
 
+#include "GeoLib/GEOObjects.h"
+#include "GeoLib/Point.h"
+#include "GeoLib/Polygon.h"
+#include "GeoLib/PolylineWithSegmentMarker.h"
+
 namespace FileIO 
 {
 namespace GMSH {
diff --git a/FileIO/GmshIO/GMSHPolygonTree.h b/FileIO/GmshIO/GMSHPolygonTree.h
index 16df0d6c2640d773bcff2755883d16d0c939328b..e9790e9b1b0d2782d9a5618185672f0f7f05ad88 100644
--- a/FileIO/GmshIO/GMSHPolygonTree.h
+++ b/FileIO/GmshIO/GMSHPolygonTree.h
@@ -18,15 +18,18 @@
 #include <vector>
 #include <string>
 
-// FileIO
 #include "GMSHMeshDensityStrategy.h"
 #include "GMSHPoint.h"
 #include "GMSHLine.h"
 
-// GeoLib
-#include "SimplePolygonTree.h"
-#include "GEOObjects.h"
-#include "PolylineWithSegmentMarker.h"
+#include "GeoLib/SimplePolygonTree.h"
+
+namespace GeoLib
+{
+    class GEOObjects;
+    class Polygon;
+    class PolylineWithSegmentMarker;
+}
 
 namespace FileIO 
 {
diff --git a/FileIO/Legacy/MeshIO.cpp b/FileIO/Legacy/MeshIO.cpp
index 1e92e8711e7b7ca66fde385c0ddfc65233bce2fd..1765bcf0a68ec9887fb82fb82a65090e230e3445 100644
--- a/FileIO/Legacy/MeshIO.cpp
+++ b/FileIO/Legacy/MeshIO.cpp
@@ -16,31 +16,28 @@
  * @author Karsten Rink
  */
 
+#include "MeshIO.h"
+
 #include <iomanip>
 #include <sstream>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// GeoLib
-#include "GEOObjects.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// MeshLib
-#include "Elements/Line.h"
-#include "Elements/Hex.h"
-#include "Elements/Prism.h"
-#include "Elements/Pyramid.h"
-#include "Elements/Quad.h"
-#include "Elements/Tet.h"
-#include "Elements/Tri.h"
-#include "MeshIO.h"
+#include "GeoLib/GEOObjects.h"
+
+#include "MeshLib/Elements/Line.h"
+#include "MeshLib/Elements/Hex.h"
+#include "MeshLib/Elements/Prism.h"
+#include "MeshLib/Elements/Pyramid.h"
+#include "MeshLib/Elements/Quad.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/Elements/Tri.h"
 #include "MeshLib/Node.h"
 #include "MeshLib/Location.h"
 
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
-
 namespace FileIO
 {
 namespace Legacy {
diff --git a/FileIO/Legacy/OGSIOVer4.cpp b/FileIO/Legacy/OGSIOVer4.cpp
index 229e631300bd0dd948efab085dbce6b3792220b7..58dbc955313c47bbe5da2208653f96bee1d03b94 100644
--- a/FileIO/Legacy/OGSIOVer4.cpp
+++ b/FileIO/Legacy/OGSIOVer4.cpp
@@ -12,38 +12,28 @@
  *
  */
 
+#include "OGSIOVer4.h"
+
 #include <iomanip>
 #include <limits>
 #include <sstream>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
-// FileIO
-#include "GMSHInterface.h"
-#include "OGSIOVer4.h"
-
-// BaseLib
-#include "FileTools.h"
-#include "quicksort.h"
-
-// GeoLib
-#include "GEOObjects.h"
-#include "Point.h"
-#include "Polygon.h"
-#include "Polyline.h"
-#include "SimplePolygonTree.h"
-#include "Surface.h"
-#include "Triangle.h"
+#include <logog/include/logog.hpp>
 
-// for tests only
-#include "PointVec.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// MathLib
-#include "AnalyticalGeometry.h"
-#include "EarClippingTriangulation.h"
+#include "GeoLib/AnalyticalGeometry.h"
+#include "GeoLib/EarClippingTriangulation.h"
+#include "GeoLib/GEOObjects.h"
+#include "GeoLib/Point.h"
+#include "GeoLib/PointVec.h"
+#include "GeoLib/Polygon.h"
+#include "GeoLib/Polyline.h"
+#include "GeoLib/SimplePolygonTree.h"
+#include "GeoLib/Surface.h"
+#include "GeoLib/Triangle.h"
 
-// FileIO
 #include "FileIO/TINInterface.h"
 
 using namespace GeoLib;
diff --git a/FileIO/Legacy/OGSIOVer4.h b/FileIO/Legacy/OGSIOVer4.h
index 707abb2d07c50944f04f01e22a8602bfb07eab1f..c6b8363be3a277cff99b98c17ef8cab369e3b0cf 100644
--- a/FileIO/Legacy/OGSIOVer4.h
+++ b/FileIO/Legacy/OGSIOVer4.h
@@ -20,15 +20,9 @@
 #include <string>
 #include <vector>
 
-#include "Point.h"
-#include "Polyline.h"
-#include "StringTools.h"
-#include "Surface.h"
-
-// forward declaration
 namespace GeoLib
 {
-class GEOObjects;
+    class GEOObjects;
 }
 
 namespace FileIO
diff --git a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
index 7786b24824267db73844c5d129a0a183fcfd6e4b..275ffa1759ae4f3d71ba8aa72d257327b2616ba9 100644
--- a/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
+++ b/FileIO/MPI_IO/NodePartitionedMeshReader.cpp
@@ -14,7 +14,7 @@
 
 #include "NodePartitionedMeshReader.h"
 
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
 #include "BaseLib/FileTools.h"
 #include "BaseLib/RunTime.h"
diff --git a/FileIO/PetrelInterface.cpp b/FileIO/PetrelInterface.cpp
index e91b00efe9da4f07fcf0975005dce24c3a88131f..263086f2353583f8fd8b546738bef4a33b77bd34 100644
--- a/FileIO/PetrelInterface.cpp
+++ b/FileIO/PetrelInterface.cpp
@@ -15,17 +15,15 @@
  * @author Thomas Fischer
  */
 
-#include <fstream>
-
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
 #include "PetrelInterface.h"
 
-// BaseLib
-#include "StringTools.h"
+#include <fstream>
+
+#include <logog/include/logog.hpp>
 
-#include "StationBorehole.h"
+#include "BaseLib/StringTools.h"
+#include "GeoLib/StationBorehole.h"
+#include "GeoLib/GEOObjects.h"
 
 namespace FileIO
 {
diff --git a/FileIO/PetrelInterface.h b/FileIO/PetrelInterface.h
index 19d9b695c584f78828779631debae18c88424ed4..cb2cbda1f258cfd57096791f7ced9952d5160c37 100644
--- a/FileIO/PetrelInterface.h
+++ b/FileIO/PetrelInterface.h
@@ -18,12 +18,18 @@
 #ifndef PETRELIO_H_
 #define PETRELIO_H_
 
-#include "GEOObjects.h"
-#include <iostream>
+#include <istream>
 #include <list>
 #include <string>
 #include <vector>
 
+namespace GeoLib
+{
+    class GEOObjects;
+    class Point;
+    class Polyline;
+}
+
 namespace FileIO
 {
 class PetrelInterface
diff --git a/FileIO/RapidXmlIO/RapidStnInterface.cpp b/FileIO/RapidXmlIO/RapidStnInterface.cpp
index 701fdf9b9c251bc1845a0b7371fd27450fe1998b..fcc9c28e64306b9468a83d87fa1a7df35f18fca4 100644
--- a/FileIO/RapidXmlIO/RapidStnInterface.cpp
+++ b/FileIO/RapidXmlIO/RapidStnInterface.cpp
@@ -12,18 +12,15 @@
  *
  */
 
-#include <iostream>
-
-//RapidXML
 #include "RapidStnInterface.h"
 
-// BaseLib
-#include "StringTools.h"
-#include "FileTools.h"
+#include <fstream>
+
+#include "BaseLib/StringTools.h"
+#include "BaseLib/FileTools.h"
 
-// GeoLib
-#include "Station.h"
-#include "StationBorehole.h"
+#include "GeoLib/Station.h"
+#include "GeoLib/StationBorehole.h"
 
 namespace FileIO
 {
diff --git a/FileIO/RapidXmlIO/RapidStnInterface.h b/FileIO/RapidXmlIO/RapidStnInterface.h
index 0b9197174219405d3475d66496288ebe5381249a..74a438a17a214131614254a506946920c34021e2 100644
--- a/FileIO/RapidXmlIO/RapidStnInterface.h
+++ b/FileIO/RapidXmlIO/RapidStnInterface.h
@@ -15,12 +15,14 @@
 #ifndef RAPIDXMLINTERFACE_H
 #define RAPIDXMLINTERFACE_H
 
-#include "RapidXML/rapidxml.hpp"
+#include <string>
 #include <vector>
 
-#include "Point.h"
+#include "RapidXML/rapidxml.hpp"
+
 
 namespace GeoLib {
+    class Point;
 	class StationBorehole;
 }
 
diff --git a/FileIO/SHPInterface.cpp b/FileIO/SHPInterface.cpp
index 1e39294497f530a1283491181fa832b020735379..6fa2450547293926459cb481bff8e8e78a0730ec 100644
--- a/FileIO/SHPInterface.cpp
+++ b/FileIO/SHPInterface.cpp
@@ -15,20 +15,20 @@
  * @author Karsten Rink
  */
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
 #include "SHPInterface.h"
 
-// MathLib
-#include "AnalyticalGeometry.h"
+#include <logog/include/logog.hpp>
+
+#include "GeoLib/AnalyticalGeometry.h"
+#include "GeoLib/GEOObjects.h"
+#include "GeoLib/Polyline.h"
+#include "GeoLib/Point.h"
 
-// MeshLib
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-#include "Elements/Element.h"
-#include "Elements/Tri.h"
-#include "Elements/Quad.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/Elements/Tri.h"
+#include "MeshLib/Elements/Quad.h"
 
 namespace FileIO
 {
diff --git a/FileIO/SHPInterface.h b/FileIO/SHPInterface.h
index 07e1c77ce492b8b28d01837f3b59660194809f46..ece393cd6c20a6c0be00b976635adcbd31bc6d24 100644
--- a/FileIO/SHPInterface.h
+++ b/FileIO/SHPInterface.h
@@ -19,13 +19,16 @@
 #define SHPINTERFACE_H
 
 #include <string>
+#include <vector>
 
 //ShapeLib includes
 #include "shape/shapefil.h"
 
-// GeoLib
-#include "GEOObjects.h"
 
+namespace GeoLib {
+	class GEOObjects;
+	class Polyline;
+}
 
 namespace MeshLib {
 	class Mesh;
diff --git a/FileIO/TINInterface.cpp b/FileIO/TINInterface.cpp
index 080c085c32d540d700a2c6a7df2858ad6edf0f3c..7093f658379527c712081c9c7f22a16313db3354 100644
--- a/FileIO/TINInterface.cpp
+++ b/FileIO/TINInterface.cpp
@@ -11,7 +11,7 @@
 #include <fstream>
 #include <limits>
 
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
 #include "BaseLib/FileTools.h"
 #include "BaseLib/StringTools.h"
diff --git a/FileIO/TetGenInterface.cpp b/FileIO/TetGenInterface.cpp
index fcee51ecc7b0396bc45acbd2d97c896965a9bfef..7f8f3a318dc3afed9d1eccddd0937f5880c3bfa0 100644
--- a/FileIO/TetGenInterface.cpp
+++ b/FileIO/TetGenInterface.cpp
@@ -12,26 +12,22 @@
  *
  */
 
+#include "TetGenInterface.h"
+
 #include <cstddef>
 #include <string>
 #include <fstream>
 
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
+#include <logog/include/logog.hpp>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
-// FileIO
-#include "TetGenInterface.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// MeshLib
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 #include "MeshLib/Node.h"
-#include "Elements/Element.h"
-#include "Elements/Tet.h"
-#include "MeshInformation.h"
+#include "MeshLib/Elements/Element.h"
+#include "MeshLib/Elements/Tet.h"
+#include "MeshLib/MeshInformation.h"
 
 namespace FileIO
 {
diff --git a/FileIO/VtkIO/VtuInterface.cpp b/FileIO/VtkIO/VtuInterface.cpp
index 5f1949abda673b9b4c44ce9c442323447fbec81d..b85dccd787dc1640b55bbe2d970e17d7af0f2f0a 100644
--- a/FileIO/VtkIO/VtuInterface.cpp
+++ b/FileIO/VtkIO/VtuInterface.cpp
@@ -13,18 +13,18 @@
 
 #include "VtuInterface.h"
 
-#include "logog/include/logog.hpp"
-
 #include <vtkNew.h>
 #include <vtkXMLUnstructuredGridReader.h>
 #include <vtkXMLUnstructuredGridWriter.h>
 #include <vtkSmartPointer.h>
 #include <vtkUnstructuredGrid.h>
 
-#include "FileTools.h"
+#include <logog/include/logog.hpp>
+
+#include "BaseLib/FileTools.h"
 #include "InSituLib/VtkMappedMeshSource.h"
-#include "Mesh.h"
-#include "MeshGenerators/VtkMeshConverter.h"
+#include "MeshLib/Mesh.h"
+#include "MeshLib/MeshGenerators/VtkMeshConverter.h"
 
 namespace FileIO
 {
diff --git a/FileIO/XmlIO/Qt/XMLQtInterface.cpp b/FileIO/XmlIO/Qt/XMLQtInterface.cpp
index d3adf741795ecfe581c97717c440b881c9997403..fa94a796190a6faca1fb368c89466247ca4ce803 100644
--- a/FileIO/XmlIO/Qt/XMLQtInterface.cpp
+++ b/FileIO/XmlIO/Qt/XMLQtInterface.cpp
@@ -11,7 +11,7 @@
  *              http://www.opengeosys.org/LICENSE.txt
  */
 
-#include "XmlIO/Qt/XMLQtInterface.h"
+#include "XMLQtInterface.h"
 
 #include <fstream>
 
@@ -22,8 +22,7 @@
 #include <QByteArray>
 #include <QCryptographicHash>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
 namespace FileIO
 {
diff --git a/FileIO/XmlIO/Qt/XmlGmlInterface.cpp b/FileIO/XmlIO/Qt/XmlGmlInterface.cpp
index 2fd39a3353ce33e23f8c6141eab1c7b54f13304c..560b247525d7349f15ab51b7db0aaab0fe0ce96a 100644
--- a/FileIO/XmlIO/Qt/XmlGmlInterface.cpp
+++ b/FileIO/XmlIO/Qt/XmlGmlInterface.cpp
@@ -12,16 +12,16 @@
  *
  */
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
 #include "XmlGmlInterface.h"
-#include "FileFinder.h"
 
 #include <QFile>
 #include <QTextCodec>
 #include <QtXml/QDomDocument>
 
+#include <logog/include/logog.hpp>
+
+#include "BaseLib/FileFinder.h"
+
 namespace FileIO
 {
 XmlGmlInterface::XmlGmlInterface(GeoLib::GEOObjects& geo_objs) :
diff --git a/FileIO/XmlIO/Qt/XmlGspInterface.cpp b/FileIO/XmlIO/Qt/XmlGspInterface.cpp
index a68dec373cdb96334f84d3ad7e93670d1370ecb9..c9e0b1e4982491efe1922f5aeadcb058d786d1d1 100644
--- a/FileIO/XmlIO/Qt/XmlGspInterface.cpp
+++ b/FileIO/XmlIO/Qt/XmlGspInterface.cpp
@@ -12,21 +12,26 @@
  *
  */
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
 #include "XmlGspInterface.h"
 
+#include <ostream>
+#include <vector>
+
+#include <logog/include/logog.hpp>
+
 #include "Applications/ApplicationsLib/ProjectData.h"
+#include "GeoLib/GEOObjects.h"
 
 #include "XmlGmlInterface.h"
 #include "XmlStnInterface.h"
 
-#include "FileTools.h"
-#include "FileFinder.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/FileFinder.h"
+
+#include "FileIO/Writer.h"
 #include "FileIO/Legacy/MeshIO.h"
 #include "FileIO/readMeshFromFile.h"
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 
 #include <QFile>
 #include <QFileInfo>
diff --git a/FileIO/XmlIO/Qt/XmlGspInterface.h b/FileIO/XmlIO/Qt/XmlGspInterface.h
index f015fda3870101ace8dfd3731fdeb7e8b05068bc..17f8758a9f251afa31d6ba46b841ec528c6b74eb 100644
--- a/FileIO/XmlIO/Qt/XmlGspInterface.h
+++ b/FileIO/XmlIO/Qt/XmlGspInterface.h
@@ -16,6 +16,9 @@
 #define XMLGSPINTERFACE_H
 
 #include <string>
+
+#include <QString>
+
 #include "../XMLInterface.h"
 #include "XMLQtInterface.h"
 
diff --git a/FileIO/XmlIO/Qt/XmlLutReader.h b/FileIO/XmlIO/Qt/XmlLutReader.h
index a3d8f2048dfe903e59c85bb5d45841a9e6d48be1..121d1daad13c14c5dbf1551bd3985c36952d1362 100644
--- a/FileIO/XmlIO/Qt/XmlLutReader.h
+++ b/FileIO/XmlIO/Qt/XmlLutReader.h
@@ -15,13 +15,12 @@
 #ifndef XMLLUTREADER_H
 #define XMLLUTREADER_H
 
-#include "VtkColorLookupTable.h"
-
 #include <QFile>
 #include <QtXml/QDomDocument>
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
+
+#include "VtkColorLookupTable.h"
 
 
 namespace FileIO
diff --git a/FileIO/XmlIO/Qt/XmlNumInterface.cpp b/FileIO/XmlIO/Qt/XmlNumInterface.cpp
index b4b6ce34811ea088c2feb9112a62e5dadb17fee2..27ca1f0f045d94693b49de316f540cf1fa11aa47 100644
--- a/FileIO/XmlIO/Qt/XmlNumInterface.cpp
+++ b/FileIO/XmlIO/Qt/XmlNumInterface.cpp
@@ -12,16 +12,17 @@
  *
  */
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
-
 #include "XmlNumInterface.h"
-#include "FileFinder.h"
 
 #include <QFile>
 #include <QTextCodec>
 #include <QtXml/QDomDocument>
 
+#include <logog/include/logog.hpp>
+
+#include "BaseLib/FileFinder.h"
+
+
 namespace FileIO
 {
 XmlNumInterface::XmlNumInterface() :
diff --git a/FileIO/XmlIO/Qt/XmlStnInterface.cpp b/FileIO/XmlIO/Qt/XmlStnInterface.cpp
index 9a80596034c93557af6741ab7f401e77addea6e4..346dab6dab25cf31175b8f3953cf4ead04561d8b 100644
--- a/FileIO/XmlIO/Qt/XmlStnInterface.cpp
+++ b/FileIO/XmlIO/Qt/XmlStnInterface.cpp
@@ -12,22 +12,21 @@
  *
  */
 
-#include <limits>
+#include "XmlStnInterface.h"
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <limits>
 
 #include <QFile>
 #include <QtXml/QDomDocument>
 
-#include "XmlStnInterface.h"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "DateTools.h"
-#include "FileTools.h"
-#include "FileFinder.h"
+#include "BaseLib/DateTools.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/FileFinder.h"
 
-#include "StationBorehole.h"
+#include "GeoLib/StationBorehole.h"
+#include "GeoLib/GEOObjects.h"
 
 namespace FileIO
 {
diff --git a/FileIO/XmlIO/Qt/XmlStnInterface.h b/FileIO/XmlIO/Qt/XmlStnInterface.h
index 0331231a6d39aadf696d8f4ebd338ea5907a80bc..a1d144415cc635f2d9bbc210e701a854e2d0c3aa 100644
--- a/FileIO/XmlIO/Qt/XmlStnInterface.h
+++ b/FileIO/XmlIO/Qt/XmlStnInterface.h
@@ -15,14 +15,16 @@
 #ifndef XMLSTNINTERFACE_H
 #define XMLSTNINTERFACE_H
 
+#include <vector>
+
 #include "RapidXML/rapidxml.hpp"
 
 #include "../XMLInterface.h"
 #include "XMLQtInterface.h"
 
-#include "GeoLib/GEOObjects.h"
-
 namespace GeoLib {
+	class GEOObjects;
+	class Point;
 	class StationBorehole;
 }
 
diff --git a/FileIO/readMeshFromFile.cpp b/FileIO/readMeshFromFile.cpp
index a82880078563719d77c6af400bb0a2dba8518a0d..0168cd380155b3cc1cae29745e134b6cc412a205 100644
--- a/FileIO/readMeshFromFile.cpp
+++ b/FileIO/readMeshFromFile.cpp
@@ -15,25 +15,22 @@
  * @author Karsten Rink
  */
 
+#include "readMeshFromFile.h"
+
 #ifdef USE_PETSC
 #include <petsc.h>
 #endif
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// MeshLib
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 
-// FileIO
-#include "Legacy/MeshIO.h"
+#include "FileIO/Legacy/MeshIO.h"
 #include "FileIO/VtkIO/VtuInterface.h"
-#include "readMeshFromFile.h"
-// FileIO : for reading partitioned mesh.
+
 #ifdef USE_PETSC
 #include "FileIO/MPI_IO/NodePartitionedMeshReader.h"
 #include "MeshLib/NodePartitionedMesh.h"
diff --git a/FileIO/writeMeshToFile.cpp b/FileIO/writeMeshToFile.cpp
index f4b907f20c8ba521d24bbd514af7d34b06de782e..8695268f59ef042bcbd1f19863e0391e9e499e36 100644
--- a/FileIO/writeMeshToFile.cpp
+++ b/FileIO/writeMeshToFile.cpp
@@ -8,19 +8,15 @@
 
 #include "writeMeshToFile.h"
 
-// ThirdParty/logog
-#include "logog/include/logog.hpp"
+#include <logog/include/logog.hpp>
 
-// BaseLib
-#include "FileTools.h"
-#include "StringTools.h"
+#include "BaseLib/FileTools.h"
+#include "BaseLib/StringTools.h"
 
-// MeshLib
-#include "Mesh.h"
+#include "MeshLib/Mesh.h"
 
-// FileIO
 #include "Legacy/MeshIO.h"
-#include "FileIO/VtkIO/VtuInterface.h"
+#include "VtkIO/VtuInterface.h"
 
 namespace FileIO
 {