diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000000000000000000000000000000000000..34953997d7f687f11789aa3b8f013eaf5215632a
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "appl/precice-adapter"]
+	path = appl/precice-adapter
+	url = git@gitlab-sgs.informatik.uni-stuttgart.de:jaustar/dumux-precice-wrapper.git
diff --git a/appl/coupling-ff-pm/iterative/CMakeLists.txt b/appl/coupling-ff-pm/iterative/CMakeLists.txt
index bc25cc08cef2e68eb2976a113432cbcc17149943..c7f136939d4b840f51228c209b32b3d49abec9c3 100644
--- a/appl/coupling-ff-pm/iterative/CMakeLists.txt
+++ b/appl/coupling-ff-pm/iterative/CMakeLists.txt
@@ -11,8 +11,8 @@ find_package(Boost 1.65.1 REQUIRED COMPONENTS log system) #Require same version
 #              SOURCES main_pm.cc ../precice/preciceadapter.cc ../precice/dumuxpreciceindexwrapper.cc
 #              COMPILE_DEFINITIONS ENABLEMONOLITHIC=0)
 
-add_executable(test_ff EXCLUDE_FROM_ALL main_ff.cc ../precice/preciceadapter.cc ../precice/dumuxpreciceindexwrapper.cc)
-add_executable(test_pm EXCLUDE_FROM_ALL main_pm.cc ../precice/preciceadapter.cc ../precice/dumuxpreciceindexwrapper.cc)
+add_executable(test_ff EXCLUDE_FROM_ALL main_ff.cc ../../precice-adapter/src/preciceadapter.cc ../../precice-adapter/src/dumuxpreciceindexwrapper.cc)
+add_executable(test_pm EXCLUDE_FROM_ALL main_pm.cc ../../precice-adapter/src/preciceadapter.cc ../../precice-adapter/src/dumuxpreciceindexwrapper.cc)
 
 target_compile_definitions(test_ff PUBLIC "ENABLEMONOLITHIC=0")
 target_compile_definitions(test_pm PUBLIC "ENABLEMONOLITHIC=0")
diff --git a/appl/coupling-ff-pm/iterative/main_ff.cc b/appl/coupling-ff-pm/iterative/main_ff.cc
index 31e5f0bce11710a3b82538ba7565cf3ce757dfaf..30e58b7ebec75d4df75266f6f3a0e295bb30f8cf 100644
--- a/appl/coupling-ff-pm/iterative/main_ff.cc
+++ b/appl/coupling-ff-pm/iterative/main_ff.cc
@@ -47,7 +47,7 @@
 
 #include "../monolithic/ffproblem.hh"
 
-#include "../precice/preciceadapter.hh"
+#include "../../precice-adapter/include/preciceadapter.hh"
 
 //TODO
 // Helper function to put pressure on interface
@@ -258,9 +258,9 @@ int main(int argc, char** argv) try
         {
             //Read checkpoint
             sol = sol_checkpoint;
-            //freeFlowGridVariables->update(sol);
-            //freeFlowGridVariables->advanceTimeStep();
-            freeFlowGridVariables->init(sol);
+            freeFlowGridVariables->update(sol);
+            freeFlowGridVariables->advanceTimeStep();
+            //freeFlowGridVariables->init(sol);
             couplingInterface.announceIterationCheckpointRead();
         }
         else // coupling successful
diff --git a/appl/coupling-ff-pm/iterative/main_pm.cc b/appl/coupling-ff-pm/iterative/main_pm.cc
index 225ed24ebf496f3b08461f300f5a4113163c9eb8..f96b9e14a76e09e79be8a0e4e0b949508a513c7a 100644
--- a/appl/coupling-ff-pm/iterative/main_pm.cc
+++ b/appl/coupling-ff-pm/iterative/main_pm.cc
@@ -52,7 +52,7 @@
 
 #include "../monolithic/pmproblem.hh"
 
-#include "../precice/preciceadapter.hh"
+#include "../../precice-adapter/include/preciceadapter.hh"
 
  /*!
   * \brief Returns the pressure at the interface using Darcy's law for reconstruction
@@ -278,9 +278,9 @@ int main(int argc, char** argv) try
         {
             //Read checkpoint
             sol = sol_checkpoint;
-            //darcyGridVariables->update(sol);
-            //darcyGridVariables->advanceTimeStep();
-            darcyGridVariables->init(sol);
+            darcyGridVariables->update(sol);
+            darcyGridVariables->advanceTimeStep();
+            //darcyGridVariables->init(sol);
             couplingInterface.announceIterationCheckpointRead();
         }
         else // coupling successful
diff --git a/appl/coupling-ff-pm/monolithic/ffproblem.hh b/appl/coupling-ff-pm/monolithic/ffproblem.hh
index 130bcc14bd298946da506104b4a1c3d0ecde7f2b..1642fac74c63a4a019bf7862006a721298205ae4 100644
--- a/appl/coupling-ff-pm/monolithic/ffproblem.hh
+++ b/appl/coupling-ff-pm/monolithic/ffproblem.hh
@@ -36,7 +36,7 @@
 #include <dumux/discretization/staggered/freeflow/properties.hh>
 #include <dumux/freeflow/navierstokes/model.hh>
 
-#include "../precice/preciceadapter.hh"
+#include "../../precice-adapter/include/preciceadapter.hh"
 
 namespace Dumux
 {
diff --git a/appl/coupling-ff-pm/monolithic/pmproblem.hh b/appl/coupling-ff-pm/monolithic/pmproblem.hh
index 7ed57e39290390b7c3220ec18bde3cfdf187741a..c097246c1ce447ffc947d83b31d4f967f66f0919 100644
--- a/appl/coupling-ff-pm/monolithic/pmproblem.hh
+++ b/appl/coupling-ff-pm/monolithic/pmproblem.hh
@@ -43,7 +43,7 @@
 #include <dumux/material/components/simpleh2o.hh>
 #include <dumux/material/fluidsystems/1pliquid.hh>
 
-#include "../precice/preciceadapter.hh"
+#include "../../precice-adapter/include/preciceadapter.hh"
 
 namespace Dumux
 {
diff --git a/appl/precice-adapter b/appl/precice-adapter
new file mode 160000
index 0000000000000000000000000000000000000000..e3831bc787ebf9dfae27c88a7c0492af1ec1391b
--- /dev/null
+++ b/appl/precice-adapter
@@ -0,0 +1 @@
+Subproject commit e3831bc787ebf9dfae27c88a7c0492af1ec1391b