diff --git a/ChemistryLib/CreateChemicalSolverInterface.cpp b/ChemistryLib/CreateChemicalSolverInterface.cpp
index 415b69dbd1017b42ba440d3af127a89045aef2f0..bd080a099725ebbb3fe135fdab51d898deca3636 100644
--- a/ChemistryLib/CreateChemicalSolverInterface.cpp
+++ b/ChemistryLib/CreateChemicalSolverInterface.cpp
@@ -12,6 +12,7 @@
 
 #include <iphreeqc/src/src/phreeqcpp/cxxKinetics.h>
 
+#include "BaseLib/ConfigTree.h"
 #include "BaseLib/FileTools.h"
 #include "Common/CreateReactionRate.h"
 #include "MeshLib/Mesh.h"
diff --git a/MathLib/LinAlg/Eigen/EigenLinearSolver.h b/MathLib/LinAlg/Eigen/EigenLinearSolver.h
index 6aef020f5ecf22527cae4163ec6a9c2979dd6ce4..ae7305853c32bff1a6451625d29c2ef48638f8d5 100644
--- a/MathLib/LinAlg/Eigen/EigenLinearSolver.h
+++ b/MathLib/LinAlg/Eigen/EigenLinearSolver.h
@@ -10,11 +10,16 @@
 
 #pragma once
 
+#include <memory>
 #include <vector>
 
-#include "BaseLib/ConfigTree.h"
 #include "EigenOption.h"
 
+namespace BaseLib
+{
+class ConfigTree;
+}
+
 namespace MathLib
 {
 
diff --git a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp
index 55ee54835ac13255ef548aefe97e6fd15621b488..decf3acc3ef1bb8232aa345cb4b05c6ef3277fa4 100644
--- a/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/PhaseFieldIrreversibleDamageOracleBoundaryCondition.cpp
@@ -12,6 +12,8 @@
 
 #include <algorithm>
 #include <vector>
+
+#include "BaseLib/ConfigTree.h"
 #include "BaseLib/Logging.h"
 
 namespace ProcessLib
diff --git a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp
index f3fb6e2fd363c15520e447db6e8345f18252f174..861a79583e3dddbaa533433203b2aec398495e39 100644
--- a/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp
+++ b/ProcessLib/BoundaryCondition/Python/PythonBoundaryCondition.cpp
@@ -11,8 +11,10 @@
 #include "PythonBoundaryCondition.h"
 
 #include <pybind11/pybind11.h>
+
 #include <iostream>
 
+#include "BaseLib/ConfigTree.h"
 #include "MeshLib/MeshSearch/NodeSearch.h"
 #include "ProcessLib/Utils/CreateLocalAssemblers.h"
 #include "PythonBoundaryConditionLocalAssembler.h"
diff --git a/ProcessLib/CentralDifferencesJacobianAssembler.cpp b/ProcessLib/CentralDifferencesJacobianAssembler.cpp
index 2515e051713332e466f47a9ed453c2f01eda00d3..70d72322cb42dacceca91a17ad183d5f84e3f596 100644
--- a/ProcessLib/CentralDifferencesJacobianAssembler.cpp
+++ b/ProcessLib/CentralDifferencesJacobianAssembler.cpp
@@ -9,9 +9,11 @@
  */
 
 #include "CentralDifferencesJacobianAssembler.h"
+
+#include "BaseLib/ConfigTree.h"
 #include "BaseLib/Error.h"
-#include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 #include "LocalAssemblerInterface.h"
+#include "MathLib/LinAlg/Eigen/EigenMapTools.h"
 
 namespace ProcessLib
 {
diff --git a/Tests/MathLib/TestLinearSolver.cpp b/Tests/MathLib/TestLinearSolver.cpp
index afa8cb7e66fd6658641c73e3bcba7849c7998b25..417b49f512d910d8668dfa67bc9e1a7f23d691cd 100644
--- a/Tests/MathLib/TestLinearSolver.cpp
+++ b/Tests/MathLib/TestLinearSolver.cpp
@@ -15,10 +15,11 @@
 
 #include <gtest/gtest.h>
 
-#include "MathLib/LinAlg/LinAlg.h"
+#include "BaseLib/ConfigTree.h"
+#include "MathLib/LinAlg/ApplyKnownSolution.h"
 #include "MathLib/LinAlg/Dense/DenseMatrix.h"
 #include "MathLib/LinAlg/FinalizeMatrixAssembly.h"
-#include "MathLib/LinAlg/ApplyKnownSolution.h"
+#include "MathLib/LinAlg/LinAlg.h"
 
 #ifdef OGS_USE_EIGEN
 #include "MathLib/LinAlg/Eigen/EigenMatrix.h"
diff --git a/Tests/NumLib/TestSerialLinearSolver.cpp b/Tests/NumLib/TestSerialLinearSolver.cpp
index bbddc00d37b19c0da71539985dd2bbd8d14e0ece..ee45fcaea80609c9b6f373b3a0e784b88acef56e 100644
--- a/Tests/NumLib/TestSerialLinearSolver.cpp
+++ b/Tests/NumLib/TestSerialLinearSolver.cpp
@@ -10,31 +10,29 @@
  *
  */
 
+#include <gtest/gtest.h>
+
 #include <cmath>
 #include <memory>
 #include <vector>
 
-#include <gtest/gtest.h>
-
+#include "BaseLib/ConfigTree.h"
 #include "MathLib/LinAlg/ApplyKnownSolution.h"
+#include "MathLib/LinAlg/FinalizeMatrixAssembly.h"
 #include "MathLib/LinAlg/GlobalMatrixVectorTypes.h"
 #include "MathLib/LinAlg/MatrixSpecifications.h"
 #include "MathLib/LinAlg/MatrixVectorTraits.h"
-#include "MathLib/LinAlg/FinalizeMatrixAssembly.h"
 #include "MathLib/MathTools.h"
-
 #include "MeshLib/Elements/Element.h"
 #include "MeshLib/Elements/Quad.h"
 #include "MeshLib/Location.h"
 #include "MeshLib/Mesh.h"
 #include "MeshLib/MeshSubset.h"
 #include "MeshLib/Node.h"
-
-#include "NumLib/NumericsConfig.h"
 #include "NumLib/DOF/DOFTableUtil.h"
-
-#include "Tests/TestTools.h"
+#include "NumLib/NumericsConfig.h"
 #include "SteadyDiffusion2DExample1.h"
+#include "Tests/TestTools.h"
 
 TEST(NumLibSerialLinearSolver, Steady2DdiffusionQuadElem)
 {