diff --git a/appl/conjugateheattransfer/CMakeLists.txt b/appl/conjugateheattransfer/CMakeLists.txt
index 84fbd1225dab89cb02717ebabbfb763247150421..31b73d05dd5f880f40af26db9ddf4f1720121d7b 100644
--- a/appl/conjugateheattransfer/CMakeLists.txt
+++ b/appl/conjugateheattransfer/CMakeLists.txt
@@ -1,3 +1,12 @@
+#find_library(PRECICE_LIB NAMES precice HINTS "${LD_LIBRARY_PATH}")
+#find_package(Boost 1.65.1 REQUIRED COMPONENTS log system) #Require same version as preCICE
+
+string(REPLACE ":" ";" LIBRARY_DIRS $ENV{LD_LIBRARY_PATH})
+find_library(PRECICE_LIB NAMES precice HINTS ${LIBRARY_DIRS})
+find_package(Boost 1.65.1 REQUIRED COMPONENTS log system) #Require same version as preCICE
+
 add_subdirectory(monolithic)
 add_subdirectory(monolithic-const-dt)
 add_subdirectory(iterative)
+#add_subdirectory(iterative-reversed)
+
diff --git a/appl/conjugateheattransfer/iterative/dumuxpreciceindexwrapper.cc b/appl/conjugateheattransfer/common/dumuxpreciceindexwrapper.cc
similarity index 100%
rename from appl/conjugateheattransfer/iterative/dumuxpreciceindexwrapper.cc
rename to appl/conjugateheattransfer/common/dumuxpreciceindexwrapper.cc
diff --git a/appl/conjugateheattransfer/iterative/dumuxpreciceindexwrapper.hh b/appl/conjugateheattransfer/common/dumuxpreciceindexwrapper.hh
similarity index 100%
rename from appl/conjugateheattransfer/iterative/dumuxpreciceindexwrapper.hh
rename to appl/conjugateheattransfer/common/dumuxpreciceindexwrapper.hh
diff --git a/appl/conjugateheattransfer/common/helperfunctions.cc b/appl/conjugateheattransfer/common/helperfunctions.cc
new file mode 100644
index 0000000000000000000000000000000000000000..68b8fb14babd50ec07cfecbd94cd1a87a5ba4cf6
--- /dev/null
+++ b/appl/conjugateheattransfer/common/helperfunctions.cc
@@ -0,0 +1,2 @@
+#include "helperfunctions.hh"
+
diff --git a/appl/conjugateheattransfer/common/helperfunctions.hh b/appl/conjugateheattransfer/common/helperfunctions.hh
new file mode 100644
index 0000000000000000000000000000000000000000..f95927929fe88c67ea2745a283464572f31306f2
--- /dev/null
+++ b/appl/conjugateheattransfer/common/helperfunctions.hh
@@ -0,0 +1,233 @@
+#ifndef HELPERFUNCTIONS_HH
+#define HELPERFUNCTIONS_HH
+
+#include <type_traits>
+// DuMuX
+#include <dumux/common/properties.hh>
+// preCICE
+#include "preciceadapter.hh"
+
+namespace helperfunctions
+{
+
+  enum ProblemType
+  {
+    FreeFlow, Heat
+  };
+
+  template<class Problem, class GridVariables, class SolutionVector>
+  void setBoundaryHeatFluxes(const Problem& problem,
+                             const GridVariables& gridVars,
+                             const SolutionVector& sol)
+  {
+      const auto& fvGridGeometry = problem.fvGridGeometry();
+      auto fvGeometry = localView(fvGridGeometry);
+      auto elemVolVars = localView(gridVars.curGridVolVars());
+      auto elemFaceVars = localView(gridVars.curGridFaceVars());
+
+      auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
+
+      for (const auto& element : elements(fvGridGeometry.gridView()))
+      {
+          fvGeometry.bindElement(element);
+          elemVolVars.bindElement(element, fvGeometry, sol);
+          elemFaceVars.bindElement(element, fvGeometry, sol);
+
+          for (const auto& scvf : scvfs(fvGeometry))
+          {
+
+              if ( couplingInterface.isCoupledEntity( scvf.index() ) )
+              {
+                  //TODO: Actually writes temperature
+                const auto heatFlux = problem.neumann( element, fvGeometry, elemVolVars, elemFaceVars, scvf )[3];
+                couplingInterface.writeHeatFluxOnFace( scvf.index(), heatFlux );
+              }
+          }
+      }
+  }
+
+  template<class Problem, class GridVariables, class SolutionVector>
+  void printCellCenterTemperatures(const Problem& problem,
+                             const GridVariables& gridVars,
+                             const SolutionVector& sol)
+  {
+      const auto& fvGridGeometry = problem.fvGridGeometry();
+      auto fvGeometry = localView(fvGridGeometry);
+      auto elemVolVars = localView(gridVars.curGridVolVars());
+      auto elemFaceVars = localView(gridVars.curGridFaceVars());
+
+      auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
+
+      for (const auto& element : elements(fvGridGeometry.gridView()))
+      {
+          fvGeometry.bindElement(element);
+          elemVolVars.bindElement(element, fvGeometry, sol);
+          elemFaceVars.bindElement(element, fvGeometry, sol);
+
+          for (const auto& scvf : scvfs(fvGeometry))
+          {
+
+              if ( couplingInterface.isCoupledEntity( scvf.index() ) )
+              {
+                  //TODO: Actually writes temperature
+                const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
+                const auto& volVars = elemVolVars[scv];
+
+                std::cout << "Temperature on cell center is: " << volVars.temperature() << std::endl;
+  //              const auto heatFlux = problem.neumann( element, fvGeometry, elemVolVars, elemFaceVars, scvf )[3];
+  //              couplingInterface.writeHeatFluxOnFace( scvf.index(), heatFlux );
+              }
+          }
+      }
+  }
+
+  template<class ThermalConductivityModel, class Problem, class FVElementGeometry, class ElementVolumeVariables>
+  auto getThermalConductivity( const Problem& problem,
+                               const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                               const FVElementGeometry& fvGeometry,
+                               const ElementVolumeVariables& elemVolVars,
+                               const typename FVElementGeometry::SubControlVolumeFace& scvf,
+                               const ProblemType problemType)
+  {
+    const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
+    const auto& volVars = elemVolVars[scv];
+
+    switch ( problemType )
+    {
+      case FreeFlow:
+        return ThermalConductivityModel::effectiveThermalConductivity(volVars,
+                                                                      problem.spatialParams(),
+                                                                      element,
+                                                                      fvGeometry,
+                                                                      scv);
+      case Heat:
+        return ThermalConductivityModel::thermalConductivity(volVars,
+                                                           problem.spatialParams(),
+                                                           element,
+                                                           fvGeometry,
+                                                           scv);
+    }
+    throw std::runtime_error("helperfunctions.hh: getThermalConductivity was called with wrong problemType ");
+  }
+
+  namespace freeflow {
+
+    template<class ThermalConductivityModel, class Problem, class FVElementGeometry, class ElementVolumeVariables>
+    auto reconstructBoundaryTemperature(const Problem& problem,
+                                       const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                                       const FVElementGeometry& fvGeometry,
+                                       const ElementVolumeVariables& elemVolVars,
+                                       const typename FVElementGeometry::SubControlVolumeFace& scvf)
+    {
+        using Scalar = typename ElementVolumeVariables::VolumeVariables::PrimaryVariables::value_type;
+
+        const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
+        const auto& volVars = elemVolVars[scv];
+        const Scalar cellCenterTemperature = volVars.temperature();
+        const Scalar distance = (scvf.center() - scv.center()).two_norm();
+
+//        const Scalar insideLambda = ThermalConductivityModel::thermalConductivity(volVars,
+//                                                                                           problem.spatialParams(),
+//                                                                                           element,
+//                                                                                           fvGeometry,
+//                                                                                           scv);
+
+//        const Scalar qHeat = problem.neumann(element, fvGeometry, elemVolVars, scvf);
+//        // q = -lambda * (t_face - t_cc) / dx
+//        // t_face = -q * dx / lambda + t_cc
+//        return -qHeat * distance / insideLambda + cellCenterTemperature;
+        return 0;
+    }
+
+    template<class ThermalConductivityModel, class Problem, class GridVariables, class SolutionVector>
+    void setBoundaryTemperatures(const Problem& problem,
+                                 const GridVariables& gridVars,
+                                 const SolutionVector& sol)
+    {
+        const auto& fvGridGeometry = problem.fvGridGeometry();
+        auto fvGeometry = localView(fvGridGeometry);
+        auto elemVolVars = localView(gridVars.curGridVolVars());
+
+        auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
+
+        for (const auto& element : elements(fvGridGeometry.gridView()))
+        {
+            fvGeometry.bindElement(element);
+            elemVolVars.bindElement(element, fvGeometry, sol);
+
+            for (const auto& scvf : scvfs(fvGeometry))
+            {
+
+                if ( couplingInterface.isCoupledEntity( scvf.index() ) )
+                {
+                    //TODO: Actually writes temperature
+                    couplingInterface.writeTemperatureOnFace( scvf.index(), reconstructBoundaryTemperature<ThermalConductivityModel>(problem, element, fvGeometry, elemVolVars, scvf) );
+                }
+            }
+        }
+    }
+
+  }
+
+  namespace heat {
+    template<class ThermalConductivityModel, class Problem, class FVElementGeometry, class ElementVolumeVariables>
+    auto reconstructBoundaryTemperature(const Problem& problem,
+                                       const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
+                                       const FVElementGeometry& fvGeometry,
+                                       const ElementVolumeVariables& elemVolVars,
+                                       const typename FVElementGeometry::SubControlVolumeFace& scvf)
+    {
+        using Scalar = typename ElementVolumeVariables::VolumeVariables::PrimaryVariables::value_type;
+
+        const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
+        const auto& volVars = elemVolVars[scv];
+        const Scalar cellCenterTemperature = volVars.temperature();
+        const Scalar distance = (scvf.center() - scv.center()).two_norm();
+
+        const Scalar insideLambda = ThermalConductivityModel::effectiveThermalConductivity(volVars,
+                                                                                  problem.spatialParams(),
+                                                                                  element,
+                                                                                  fvGeometry,
+                                                                                  scv);
+
+        const Scalar qHeat = problem.neumann(element, fvGeometry, elemVolVars, scvf);
+        // q = -lambda * (t_face - t_cc) / dx
+        // t_face = -q * dx / lambda + t_cc
+        return -qHeat * distance / insideLambda + cellCenterTemperature;
+    }
+
+    template<class ThermalConductivityModel, class Problem, class GridVariables, class SolutionVector>
+    void setBoundaryTemperatures(const Problem& problem,
+                                 const GridVariables& gridVars,
+                                 const SolutionVector& sol)
+    {
+        const auto& fvGridGeometry = problem.fvGridGeometry();
+        auto fvGeometry = localView(fvGridGeometry);
+        auto elemVolVars = localView(gridVars.curGridVolVars());
+
+        auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
+
+        for (const auto& element : elements(fvGridGeometry.gridView()))
+        {
+            fvGeometry.bindElement(element);
+            elemVolVars.bindElement(element, fvGeometry, sol);
+
+            for (const auto& scvf : scvfs(fvGeometry))
+            {
+
+                if ( couplingInterface.isCoupledEntity( scvf.index() ) )
+                {
+                    //TODO: Actually writes temperature
+                    couplingInterface.writeTemperatureOnFace( scvf.index(), reconstructBoundaryTemperature<ThermalConductivityModel>(problem, element, fvGeometry, elemVolVars, scvf) );
+                }
+            }
+        }
+    }
+  }
+
+
+
+} //END - namespace helperfunctions
+
+
+#endif // HELPERFUNCTIONS_HH
diff --git a/appl/conjugateheattransfer/iterative/preciceadapter.cc b/appl/conjugateheattransfer/common/preciceadapter.cc
similarity index 100%
rename from appl/conjugateheattransfer/iterative/preciceadapter.cc
rename to appl/conjugateheattransfer/common/preciceadapter.cc
diff --git a/appl/conjugateheattransfer/iterative/preciceadapter.hh b/appl/conjugateheattransfer/common/preciceadapter.hh
similarity index 100%
rename from appl/conjugateheattransfer/iterative/preciceadapter.hh
rename to appl/conjugateheattransfer/common/preciceadapter.hh
diff --git a/appl/conjugateheattransfer/iterative/CMakeLists.txt b/appl/conjugateheattransfer/iterative/CMakeLists.txt
index 5ad19a8544ea0506254044804dc87f89d9b396b7..776ea3d7d3f78e63f318730060a9df9c7ebc321f 100644
--- a/appl/conjugateheattransfer/iterative/CMakeLists.txt
+++ b/appl/conjugateheattransfer/iterative/CMakeLists.txt
@@ -1,8 +1,8 @@
 add_input_file_links()
 dune_symlink_to_source_files(FILES "precice-config.xml" "precice-config-serial-implicit.xml")
 
-add_executable(test_freeflow EXCLUDE_FROM_ALL main_freeflow.cc preciceadapter.cc dumuxpreciceindexwrapper.cc)
-add_executable(test_solidenergy EXCLUDE_FROM_ALL main_solidenergy.cc preciceadapter.cc dumuxpreciceindexwrapper.cc)
+add_executable(test_freeflow EXCLUDE_FROM_ALL main_freeflow.cc ../common/preciceadapter.cc ../common/dumuxpreciceindexwrapper.cc ../common/helperfunctions.cc)
+add_executable(test_solidenergy EXCLUDE_FROM_ALL main_solidenergy.cc ../common/preciceadapter.cc ../common/dumuxpreciceindexwrapper.cc ../common/helperfunctions.cc)
 #add_executable(test_preciceadapter EXCLUDE_FROM_ALL preciceadapter.cc)
 
 target_compile_definitions(test_freeflow PUBLIC "ENABLEMONOLITHIC=0")
@@ -10,7 +10,8 @@ target_compile_definitions(test_solidenergy PUBLIC "ENABLEMONOLITHIC=0")
 
 #set_property( TARGET libprecice IMPORTED_LOCATION $ENV{PRECICE_ROOT}/build/last/librprecice.so )
 
-find_library(PRECICE_LIB NAMES precice HINTS "${LD_LIBRARY_PATH}")
+string(REPLACE ":" ";" LIBRARY_DIRS $ENV{LD_LIBRARY_PATH})
+find_library(PRECICE_LIB NAMES precice HINTS "${LIBRARY_DIRS}")
 find_package(Boost 1.65.1 REQUIRED COMPONENTS log system) #Require same version as preCICE
 
 
diff --git a/appl/conjugateheattransfer/iterative/main_freeflow.cc b/appl/conjugateheattransfer/iterative/main_freeflow.cc
index 95e94ce2d3988a0a4144ea43ca14eccc31f969ae..e195afaa912919f52c000ae9faeac6bc00dda543 100644
--- a/appl/conjugateheattransfer/iterative/main_freeflow.cc
+++ b/appl/conjugateheattransfer/iterative/main_freeflow.cc
@@ -47,75 +47,8 @@
 #include <dumux/nonlinear/newtonsolver.hh>
 
 #include "../monolithic/problem_freeflow.hh"
-#include "preciceadapter.hh"
-
-
-template<class Problem, class GridVariables, class SolutionVector>
-void setBoundaryHeatFluxes(const Problem& problem,
-                           const GridVariables& gridVars,
-                           const SolutionVector& sol)
-{
-    const auto& fvGridGeometry = problem.fvGridGeometry();
-    auto fvGeometry = localView(fvGridGeometry);
-    auto elemVolVars = localView(gridVars.curGridVolVars());
-    auto elemFaceVars = localView(gridVars.curGridFaceVars());
-
-    auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
-
-    for (const auto& element : elements(fvGridGeometry.gridView()))
-    {
-        fvGeometry.bindElement(element);
-        elemVolVars.bindElement(element, fvGeometry, sol);
-        elemFaceVars.bindElement(element, fvGeometry, sol);
-
-        for (const auto& scvf : scvfs(fvGeometry))
-        {
-
-            if ( couplingInterface.isCoupledEntity( scvf.index() ) )
-            {
-                //TODO: Actually writes temperature
-              const auto heatFlux = problem.neumann( element, fvGeometry, elemVolVars, elemFaceVars, scvf )[3];
-              couplingInterface.writeHeatFluxOnFace( scvf.index(), heatFlux );
-            }
-        }
-    }
-}
-
-template<class Problem, class GridVariables, class SolutionVector>
-void printCellCenterTemperatures(const Problem& problem,
-                           const GridVariables& gridVars,
-                           const SolutionVector& sol)
-{
-    const auto& fvGridGeometry = problem.fvGridGeometry();
-    auto fvGeometry = localView(fvGridGeometry);
-    auto elemVolVars = localView(gridVars.curGridVolVars());
-    auto elemFaceVars = localView(gridVars.curGridFaceVars());
-
-    auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
-
-    for (const auto& element : elements(fvGridGeometry.gridView()))
-    {
-        fvGeometry.bindElement(element);
-        elemVolVars.bindElement(element, fvGeometry, sol);
-        elemFaceVars.bindElement(element, fvGeometry, sol);
-
-        for (const auto& scvf : scvfs(fvGeometry))
-        {
-
-            if ( couplingInterface.isCoupledEntity( scvf.index() ) )
-            {
-                //TODO: Actually writes temperature
-              const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
-              const auto& volVars = elemVolVars[scv];
-
-              std::cout << "Temperature on cell center is: " << volVars.temperature() << std::endl;
-//              const auto heatFlux = problem.neumann( element, fvGeometry, elemVolVars, elemFaceVars, scvf )[3];
-//              couplingInterface.writeHeatFluxOnFace( scvf.index(), heatFlux );
-            }
-        }
-    }
-}
-
+#include "../common/preciceadapter.hh"
+#include "../common/helperfunctions.hh"
 
 
 int main(int argc, char** argv) try
@@ -226,7 +159,7 @@ int main(int argc, char** argv) try
 
     if ( couplingInterface.hasToWriteInitialData() )
     {
-      setBoundaryHeatFluxes( *freeFlowProblem, *freeFlowGridVariables, sol );
+      helperfunctions::setBoundaryHeatFluxes( *freeFlowProblem, *freeFlowGridVariables, sol );
       couplingInterface.writeHeatFluxToOtherSolver();
       couplingInterface.announceInitialDataWritten();
     }
@@ -288,7 +221,7 @@ int main(int argc, char** argv) try
         nonLinearSolver.solve(sol, *timeLoop);
 
         // Write heatflux to wrapper
-        setBoundaryHeatFluxes( *freeFlowProblem, *freeFlowGridVariables, sol );
+        helperfunctions::setBoundaryHeatFluxes( *freeFlowProblem, *freeFlowGridVariables, sol );
         //Tell wrapper that all values have been written
         couplingInterface.writeHeatFluxToOtherSolver();
         const double preciceDt = couplingInterface.advance( timeLoop->timeStepSize() );
diff --git a/appl/conjugateheattransfer/iterative/main_solidenergy.cc b/appl/conjugateheattransfer/iterative/main_solidenergy.cc
index 4a5e58e5811bc8583bbfb5cdd5cd6c4185a74af0..dd29bec475e951d0a5d48a1357da59b99d048c20 100644
--- a/appl/conjugateheattransfer/iterative/main_solidenergy.cc
+++ b/appl/conjugateheattransfer/iterative/main_solidenergy.cc
@@ -45,60 +45,8 @@
 #include <dumux/nonlinear/newtonsolver.hh>
 
 #include "../monolithic/problem_heat.hh"
-#include "preciceadapter.hh"
-
-template<class ThermalConductivityModel, class Problem, class FVElementGeometry, class ElementVolumeVariables>
-auto recontructBoundaryTemperature(const Problem& problem,
-                                   const typename FVElementGeometry::FVGridGeometry::GridView::template Codim<0>::Entity& element,
-                                   const FVElementGeometry& fvGeometry,
-                                   const ElementVolumeVariables& elemVolVars,
-                                   const typename FVElementGeometry::SubControlVolumeFace& scvf)
-{
-    using Scalar = typename ElementVolumeVariables::VolumeVariables::PrimaryVariables::value_type;
-
-    const auto& scv = fvGeometry.scv(scvf.insideScvIdx());
-    const auto& volVars = elemVolVars[scv];
-    const Scalar cellCenterTemperature = volVars.temperature();
-    const Scalar distance = (scvf.center() - scv.center()).two_norm();
-    const Scalar insideLambda = ThermalConductivityModel::effectiveThermalConductivity(volVars,
-                                                                                       problem.spatialParams(),
-                                                                                       element,
-                                                                                       fvGeometry,
-                                                                                       scv);
-
-    const Scalar qHeat = problem.neumann(element, fvGeometry, elemVolVars, scvf);
-    // q = -lambda * (t_face - t_cc) / dx
-    // t_face = -q * dx / lambda + t_cc
-    return -qHeat * distance / insideLambda + cellCenterTemperature;
-}
-
-template<class ThermalConductivityModel, class Problem, class GridVariables, class SolutionVector>
-void setBoundaryTemperatures(const Problem& problem,
-                             const GridVariables& gridVars,
-                             const SolutionVector& sol)
-{
-    const auto& fvGridGeometry = problem.fvGridGeometry();
-    auto fvGeometry = localView(fvGridGeometry);
-    auto elemVolVars = localView(gridVars.curGridVolVars());
-
-    auto& couplingInterface = precice_adapter::PreciceAdapter::getInstance();
-
-    for (const auto& element : elements(fvGridGeometry.gridView()))
-    {
-        fvGeometry.bindElement(element);
-        elemVolVars.bindElement(element, fvGeometry, sol);
-
-        for (const auto& scvf : scvfs(fvGeometry))
-        {
-
-            if ( couplingInterface.isCoupledEntity( scvf.index() ) )
-            {
-                //TODO: Actually writes temperature
-                couplingInterface.writeTemperatureOnFace( scvf.index(), recontructBoundaryTemperature<ThermalConductivityModel>(problem, element, fvGeometry, elemVolVars, scvf) );
-            }
-        }
-    }
-}
+#include "../common/preciceadapter.hh"
+#include "../common/helperfunctions.hh"
 
 
 int main(int argc, char** argv) try
@@ -202,6 +150,7 @@ int main(int argc, char** argv) try
 
     if ( couplingInterface.hasToWriteInitialData() )
     {
+      using namespace helperfunctions::heat;
       setBoundaryTemperatures<GetPropType<SolidEnergyTypeTag, Properties::ThermalConductivityModel>>(*solidEnergyProblem, *solidEnergyGridVariables, sol );
       couplingInterface.writeTemperatureToOtherSolver();
       couplingInterface.announceInitialDataWritten();
@@ -275,6 +224,7 @@ int main(int argc, char** argv) try
         //TODO DO WE HAVE TO MOVE THAT?
         solidEnergyGridVariables->advanceTimeStep();
 
+        using namespace helperfunctions::heat;
         setBoundaryTemperatures<GetPropType<SolidEnergyTypeTag, Properties::ThermalConductivityModel>>(*solidEnergyProblem, *solidEnergyGridVariables, sol );
         couplingInterface.writeTemperatureToOtherSolver();
 
diff --git a/appl/conjugateheattransfer/monolithic-const-dt/CMakeLists.txt b/appl/conjugateheattransfer/monolithic-const-dt/CMakeLists.txt
index e9d1012f342b0cf3aba02808433c6858f91e5f5e..95f70e426bca858c1c58fe56e1240052d804bc32 100644
--- a/appl/conjugateheattransfer/monolithic-const-dt/CMakeLists.txt
+++ b/appl/conjugateheattransfer/monolithic-const-dt/CMakeLists.txt
@@ -2,3 +2,4 @@
 dune_symlink_to_source_files(FILES "../monolithic/params.input")
 
 add_executable(test_conjugate_heat_monolithic_const_dt EXCLUDE_FROM_ALL main.cc)
+target_compile_definitions(test_conjugate_heat_monolithic PUBLIC "ENABLEMONOLITHIC=1")
diff --git a/appl/conjugateheattransfer/monolithic/CMakeLists.txt b/appl/conjugateheattransfer/monolithic/CMakeLists.txt
index d8c2d54e536cfe8b6a8a9d5ff930840089b3ab3e..c837d865261603687855085a8864ebf02889a59e 100644
--- a/appl/conjugateheattransfer/monolithic/CMakeLists.txt
+++ b/appl/conjugateheattransfer/monolithic/CMakeLists.txt
@@ -1,3 +1,5 @@
 add_input_file_links()
 
 add_executable(test_conjugate_heat_monolithic EXCLUDE_FROM_ALL main.cc)
+
+target_compile_definitions(test_conjugate_heat_monolithic PUBLIC "ENABLEMONOLITHIC=1")
diff --git a/appl/conjugateheattransfer/monolithic/problem_freeflow.hh b/appl/conjugateheattransfer/monolithic/problem_freeflow.hh
index 72e5481a7d5242cae1b520bc256e73bd1884ddae..e2f47621f665df2645fd86facac1af93b17da4ca 100644
--- a/appl/conjugateheattransfer/monolithic/problem_freeflow.hh
+++ b/appl/conjugateheattransfer/monolithic/problem_freeflow.hh
@@ -39,7 +39,7 @@
 #include <dumux/freeflow/navierstokes/model.hh>
 
 #if !ENABLEMONOLITHIC
-#include "../iterative/preciceadapter.hh"
+#include "../common/preciceadapter.hh"
 #endif
 
 namespace Dumux {
diff --git a/appl/conjugateheattransfer/monolithic/problem_heat.hh b/appl/conjugateheattransfer/monolithic/problem_heat.hh
index 31c3f7588078d52fef07535f2ec32ae33855a031..4ab9f04bbbf838ede7a9d7ec37e5460c565889b0 100644
--- a/appl/conjugateheattransfer/monolithic/problem_heat.hh
+++ b/appl/conjugateheattransfer/monolithic/problem_heat.hh
@@ -39,7 +39,7 @@
 #include "spatialparams.hh"
 
 #if !ENABLEMONOLITHIC
-#include "../iterative/preciceadapter.hh"
+#include "../common/preciceadapter.hh"
 #endif
 
 namespace Dumux {