diff --git a/test/freeflow/navierstokes/test_angeli.cc b/test/freeflow/navierstokes/test_angeli.cc
index 54a69fc4332c9a758ebec189e2d776732d5d7489..f19351e6bb1f433cca6f6f8b5d468f290073f0c3 100644
--- a/test/freeflow/navierstokes/test_angeli.cc
+++ b/test/freeflow/navierstokes/test_angeli.cc
@@ -150,7 +150,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(problem->getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/test_closedsystem.cc b/test/freeflow/navierstokes/test_closedsystem.cc
index 9530b8ceed9848b2746544dfade67d08e2f75179..a006672081c120df0fbc69244535fd7078347cb7 100644
--- a/test/freeflow/navierstokes/test_closedsystem.cc
+++ b/test/freeflow/navierstokes/test_closedsystem.cc
@@ -144,7 +144,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(0.0);
 
     // instantiate time loop
diff --git a/test/freeflow/navierstokes/test_kovasznay.cc b/test/freeflow/navierstokes/test_kovasznay.cc
index cc2a60a7b3ecd34d7556904d81b3581413efac87..1bb20aeb3905b14fc2f8607868b07bd14b598138 100644
--- a/test/freeflow/navierstokes/test_kovasznay.cc
+++ b/test/freeflow/navierstokes/test_kovasznay.cc
@@ -136,7 +136,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(problem->getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/test_navierstokes_1d.cc b/test/freeflow/navierstokes/test_navierstokes_1d.cc
index db71272df969e5227cb2ea524aa5a71f8fcce14f..da8777f6de5446062a654adb0a48af35981f1ce2 100644
--- a/test/freeflow/navierstokes/test_navierstokes_1d.cc
+++ b/test/freeflow/navierstokes/test_navierstokes_1d.cc
@@ -125,7 +125,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.addField(problem->getAnalyticalPressureSolution(), "pressureExact");
     vtkWriter.addField(problem->getAnalyticalVelocitySolution(), "velocityExact");
     vtkWriter.addFaceField(problem->getAnalyticalVelocitySolutionOnFace(), "faceVelocityExact");
diff --git a/test/freeflow/navierstokes/test_stokes_channel_3d.cc b/test/freeflow/navierstokes/test_stokes_channel_3d.cc
index b5389b17f3576b4ba8e063b46dec851a060a39b2..5b9d3a0f96a8ae770302d7069fb26c2c3c82fc81 100644
--- a/test/freeflow/navierstokes/test_stokes_channel_3d.cc
+++ b/test/freeflow/navierstokes/test_stokes_channel_3d.cc
@@ -133,7 +133,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/freeflow/navierstokesnc/test_densitydrivenflow.cc b/test/freeflow/navierstokesnc/test_densitydrivenflow.cc
index 1dbb8bc579da4bcc9d26482b6f40bb71c0120cdf..bebae70faf1589dd3a5c6ff564d7f5560daabbd3 100644
--- a/test/freeflow/navierstokesnc/test_densitydrivenflow.cc
+++ b/test/freeflow/navierstokesnc/test_densitydrivenflow.cc
@@ -148,7 +148,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.addField(problem->getDeltaRho(), "deltaRho");
     vtkWriter.write(0.0);
 
diff --git a/test/freeflow/navierstokesnc/test_msfreeflow.cc b/test/freeflow/navierstokesnc/test_msfreeflow.cc
index 1cf5daa701005682453e9ef4df6724caa32d2559..bbe525a69fae2a58bd5d813008de3f52b758d711 100644
--- a/test/freeflow/navierstokesnc/test_msfreeflow.cc
+++ b/test/freeflow/navierstokesnc/test_msfreeflow.cc
@@ -148,7 +148,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
     StaggeredVtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
-    IOFields::init(vtkWriter); //! Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //! Add model specific output fields
     vtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/multidomain/boundary/darcydarcy/1p_1p/main.cc b/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
index d662aa15cee16069c615f17a6edde4ae12b9718a..2a9686fbe016c25b6a6a6ce379e773111a7666fd 100644
--- a/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
+++ b/test/multidomain/boundary/darcydarcy/1p_1p/main.cc
@@ -225,12 +225,12 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using SolutionVector0 = std::decay_t<decltype(sol[domain0Idx])>;
     VtkOutputModule<GridVariables0, SolutionVector0> vtkWriter0(*gridVariables0, sol[domain0Idx], problem0->name());
-    GET_PROP_TYPE(SubTypeTag0, IOFields)::init(vtkWriter0);
+    GET_PROP_TYPE(SubTypeTag0, IOFields)::initOutputModule(vtkWriter0);
     vtkWriter0.write(0.0);
 
     using SolutionVector1 = std::decay_t<decltype(sol[domain1Idx])>;
     VtkOutputModule<GridVariables1, SolutionVector1> vtkWriter1(*gridVariables1, sol[domain1Idx], problem1->name());
-    GET_PROP_TYPE(SubTypeTag1, IOFields)::init(vtkWriter1);
+    GET_PROP_TYPE(SubTypeTag1, IOFields)::initOutputModule(vtkWriter1);
     vtkWriter1.write(0.0);
 
     // instantiate time loop
diff --git a/test/multidomain/boundary/darcydarcy/1p_2p/main.cc b/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
index b38e7d16dca9ba664c74239949aeae234220ff44..f749e1412223a35cd55aced5e3b5dd6489c724ad 100644
--- a/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
+++ b/test/multidomain/boundary/darcydarcy/1p_2p/main.cc
@@ -210,12 +210,12 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using SolutionVector0 = std::decay_t<decltype(sol[domain0Idx])>;
     VtkOutputModule<GridVariables0, SolutionVector0> vtkWriter0(*gridVariables0, sol[domain0Idx], problem0->name());
-    GET_PROP_TYPE(SubTypeTag0, IOFields)::init(vtkWriter0);
+    GET_PROP_TYPE(SubTypeTag0, IOFields)::initOutputModule(vtkWriter0);
     vtkWriter0.write(0.0);
 
     using SolutionVector1 = std::decay_t<decltype(sol[domain1Idx])>;
     VtkOutputModule<GridVariables1, SolutionVector1> vtkWriter1(*gridVariables1, sol[domain1Idx], problem1->name());
-    GET_PROP_TYPE(SubTypeTag1, IOFields)::init(vtkWriter1);
+    GET_PROP_TYPE(SubTypeTag1, IOFields)::initOutputModule(vtkWriter1);
     vtkWriter1.write(0.0);
 
     // instantiate time loop
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/test_stokes1p2cdarcy1p2chorizontal.cc b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/test_stokes1p2cdarcy1p2chorizontal.cc
index ed90f6302bddbe160d35f2f059a52cf216f105d7..0e51f16ffbe09de84f0da54109007b1fb096e8a7 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/test_stokes1p2cdarcy1p2chorizontal.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/test_stokes1p2cdarcy1p2chorizontal.cc
@@ -187,13 +187,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/test_stokes1p2cdarcy1p2cvertical.cc b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/test_stokes1p2cdarcy1p2cvertical.cc
index 35b37cb2ef0e13affbfc28cae3b0e5dfc4cb47f2..946bb677b470860c7cc751b39e976860c00a4c92 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/test_stokes1p2cdarcy1p2cvertical.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/test_stokes1p2cdarcy1p2cvertical.cc
@@ -188,13 +188,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/test_stokes1p2cdarcy2p2chorizontal.cc b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/test_stokes1p2cdarcy2p2chorizontal.cc
index 0dc1b24130232274bb399fd3baba2861e7eb2ac2..9a506d0e0f18d194cb9e94ae34f90144735d342c 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/test_stokes1p2cdarcy2p2chorizontal.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/test_stokes1p2cdarcy2p2chorizontal.cc
@@ -180,13 +180,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/test_stokes1pdarcy1phorizontal.cc b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/test_stokes1pdarcy1phorizontal.cc
index f19998392fa545e417aa8c0017070d769e6f2a01..70ad0085b4739c573bab372ec1a3c8279c07807f 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/test_stokes1pdarcy1phorizontal.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/test_stokes1pdarcy1phorizontal.cc
@@ -159,13 +159,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // the assembler for a stationary problem
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/test_stokes1pdarcy1pvertical.cc b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/test_stokes1pdarcy1pvertical.cc
index df0db1e15e01c5893e02e48b0daea38bff6e5ac2..a51aeacd045d93dcb5ef404f622a361fe4bd6592 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/test_stokes1pdarcy1pvertical.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/test_stokes1pdarcy1pvertical.cc
@@ -162,13 +162,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // the assembler for a stationary problem
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/test_stokes1pdarcy2pvertical.cc b/test/multidomain/boundary/stokesdarcy/1p_2p/test_stokes1pdarcy2pvertical.cc
index c4f6802ba7002fc86137559cf406fd61cce42444..9d6712d2b6de2f90a1284888ca9d131ea3f2ef49 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/test_stokes1pdarcy2pvertical.cc
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/test_stokes1pdarcy2pvertical.cc
@@ -211,13 +211,13 @@ int main(int argc, char** argv) try
     const auto darcyName = getParam<std::string>("Problem.Name") + "_" + darcyProblem->name();
 
     StaggeredVtkOutputModule<StokesGridVariables, typename GET_PROP_TYPE(StokesTypeTag, SolutionVector)> stokesVtkWriter(*stokesGridVariables, stokesSol, stokesName);
-    GET_PROP_TYPE(StokesTypeTag, IOFields)::init(stokesVtkWriter);
+    GET_PROP_TYPE(StokesTypeTag, IOFields)::initOutputModule(stokesVtkWriter);
     stokesVtkWriter.write(0.0);
 
     VtkOutputModule<DarcyGridVariables, typename GET_PROP_TYPE(DarcyTypeTag, SolutionVector)> darcyVtkWriter(*darcyGridVariables, sol[darcyIdx], darcyName);
     using DarcyVelocityOutput = typename GET_PROP_TYPE(DarcyTypeTag, VelocityOutput);
     darcyVtkWriter.addVelocityOutput(std::make_shared<DarcyVelocityOutput>(*darcyGridVariables));
-    GET_PROP_TYPE(DarcyTypeTag, IOFields)::init(darcyVtkWriter);
+    GET_PROP_TYPE(DarcyTypeTag, IOFields)::initOutputModule(darcyVtkWriter);
     darcyVtkWriter.write(0.0);
 
     // instantiate time loop
diff --git a/test/multidomain/embedded/1d3d/1p2c_richards2c/test_1p2c_richards2c.cc b/test/multidomain/embedded/1d3d/1p2c_richards2c/test_1p2c_richards2c.cc
index ef171f63e2ff7c93b3c041582fec5344bc9c6c6a..4ad28950767e38ce49af59fdb16e54a08b2adda0 100644
--- a/test/multidomain/embedded/1d3d/1p2c_richards2c/test_1p2c_richards2c.cc
+++ b/test/multidomain/embedded/1d3d/1p2c_richards2c/test_1p2c_richards2c.cc
@@ -350,13 +350,13 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using BulkSolutionVector = std::decay_t<decltype(sol[bulkIdx])>;
     VtkOutputModule<BulkGridVariables, BulkSolutionVector> bulkVtkWriter(*bulkGridVariables, sol[bulkIdx], bulkProblem->name());
-    GET_PROP_TYPE(BulkTypeTag, IOFields)::init(bulkVtkWriter);
+    GET_PROP_TYPE(BulkTypeTag, IOFields)::initOutputModule(bulkVtkWriter);
     bulkVtkWriter.write(0.0);
 
     using LowDimSolutionVector = std::decay_t<decltype(sol[lowDimIdx])>;
     VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, sol[lowDimIdx], lowDimProblem->name());
-    GET_PROP_TYPE(LowDimTypeTag, IOFields)::init(lowDimVtkWriter);
-    lowDimProblem->addIOFields(lowDimVtkWriter);
+    GET_PROP_TYPE(LowDimTypeTag, IOFields)::initOutputModule(lowDimVtkWriter);
+    lowDimProblem->addVtkOutputFields(lowDimVtkWriter);
     lowDimVtkWriter.write(0.0);
 
     // instantiate time loop
diff --git a/test/multidomain/embedded/1d3d/1p_1p/test_1p_1p.cc b/test/multidomain/embedded/1d3d/1p_1p/test_1p_1p.cc
index 0cdc8bb92d212eb5ded2b6575c4b4a68427ac182..93e29f7992ee1b2292ad1963b4e07d1238c19b7c 100644
--- a/test/multidomain/embedded/1d3d/1p_1p/test_1p_1p.cc
+++ b/test/multidomain/embedded/1d3d/1p_1p/test_1p_1p.cc
@@ -161,14 +161,14 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using BulkSolutionVector = std::decay_t<decltype(sol[bulkIdx])>;
     VtkOutputModule<BulkGridVariables, BulkSolutionVector> bulkVtkWriter(*bulkGridVariables, sol[bulkIdx], bulkProblem->name());
-    GET_PROP_TYPE(BulkTypeTag, IOFields)::init(bulkVtkWriter);
-    bulkProblem->addIOFields(bulkVtkWriter);
+    GET_PROP_TYPE(BulkTypeTag, IOFields)::initOutputModule(bulkVtkWriter);
+    bulkProblem->addVtkOutputFields(bulkVtkWriter);
     bulkVtkWriter.write(0.0);
 
     using LowDimSolutionVector = std::decay_t<decltype(sol[lowDimIdx])>;
     VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, sol[lowDimIdx], lowDimProblem->name());
-    GET_PROP_TYPE(LowDimTypeTag, IOFields)::init(lowDimVtkWriter);
-    lowDimProblem->addIOFields(lowDimVtkWriter);
+    GET_PROP_TYPE(LowDimTypeTag, IOFields)::initOutputModule(lowDimVtkWriter);
+    lowDimProblem->addVtkOutputFields(lowDimVtkWriter);
     lowDimVtkWriter.write(0.0);
 
     // an output file for the L2-norm
diff --git a/test/multidomain/embedded/1d3d/1p_richards/test_1p_richards.cc b/test/multidomain/embedded/1d3d/1p_richards/test_1p_richards.cc
index ce3f48c7ce5c563de7c4ef036f03a9f583785051..f2244432248a62ba1f97e4b0d65c04b001b6cc69 100644
--- a/test/multidomain/embedded/1d3d/1p_richards/test_1p_richards.cc
+++ b/test/multidomain/embedded/1d3d/1p_richards/test_1p_richards.cc
@@ -167,13 +167,13 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using BulkSolutionVector = std::decay_t<decltype(sol[bulkIdx])>;
     VtkOutputModule<BulkGridVariables, BulkSolutionVector> bulkVtkWriter(*bulkGridVariables, sol[bulkIdx], bulkProblem->name());
-    GET_PROP_TYPE(BulkTypeTag, IOFields)::init(bulkVtkWriter);
+    GET_PROP_TYPE(BulkTypeTag, IOFields)::initOutputModule(bulkVtkWriter);
     bulkVtkWriter.write(0.0);
 
     using LowDimSolutionVector = std::decay_t<decltype(sol[lowDimIdx])>;
     VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, sol[lowDimIdx], lowDimProblem->name());
-    GET_PROP_TYPE(LowDimTypeTag, IOFields)::init(lowDimVtkWriter);
-    lowDimProblem->addIOFields(lowDimVtkWriter);
+    GET_PROP_TYPE(LowDimTypeTag, IOFields)::initOutputModule(lowDimVtkWriter);
+    lowDimProblem->addVtkOutputFields(lowDimVtkWriter);
     lowDimVtkWriter.write(0.0);
 
     // instantiate time loop
diff --git a/test/multidomain/embedded/2d3d/1p_1p/test_1p_1p.cc b/test/multidomain/embedded/2d3d/1p_1p/test_1p_1p.cc
index 6fb6f05843eae28db06e1d52fd5e1bd1ea8415f9..89cd00a3904e7e8697b61e4933a08785253a7a16 100644
--- a/test/multidomain/embedded/2d3d/1p_1p/test_1p_1p.cc
+++ b/test/multidomain/embedded/2d3d/1p_1p/test_1p_1p.cc
@@ -211,12 +211,12 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     using BulkSolutionVector = std::decay_t<decltype(sol[bulkIdx])>;
     VtkOutputModule<BulkGridVariables, BulkSolutionVector> bulkVtkWriter(*bulkGridVariables, sol[bulkIdx], bulkProblem->name());
-    GET_PROP_TYPE(BulkTypeTag, IOFields)::init(bulkVtkWriter);
+    GET_PROP_TYPE(BulkTypeTag, IOFields)::initOutputModule(bulkVtkWriter);
     bulkVtkWriter.write(0.0);
 
     using LowDimSolutionVector = std::decay_t<decltype(sol[lowDimIdx])>;
     VtkOutputModule<LowDimGridVariables, LowDimSolutionVector> lowDimVtkWriter(*lowDimGridVariables, sol[lowDimIdx], lowDimProblem->name());
-    GET_PROP_TYPE(LowDimTypeTag, IOFields)::init(lowDimVtkWriter);
+    GET_PROP_TYPE(LowDimTypeTag, IOFields)::initOutputModule(lowDimVtkWriter);
     lowDimVtkWriter.write(0.0);
 
     // the assembler with time loop for instationary problem
diff --git a/test/multidomain/facet/1p_1p/analytical/test_facetcoupling_fv_1p1p.cc b/test/multidomain/facet/1p_1p/analytical/test_facetcoupling_fv_1p1p.cc
index 6e6d22a9f36926051e873a2e0f7b4b68bf483d1a..39490ae7dc12cbe9bbc0f9499624000b2cc0a94f 100644
--- a/test/multidomain/facet/1p_1p/analytical/test_facetcoupling_fv_1p1p.cc
+++ b/test/multidomain/facet/1p_1p/analytical/test_facetcoupling_fv_1p1p.cc
@@ -283,8 +283,8 @@ int main(int argc, char** argv) try
     {
         using BulkIOFields = typename GET_PROP_TYPE(BulkProblemTypeTag, IOFields);
         using LowDimIOFields = typename GET_PROP_TYPE(LowDimProblemTypeTag, IOFields);
-        BulkIOFields::init(bulkVtkWriter);
-        LowDimIOFields::init(lowDimVtkWriter);
+        BulkIOFields::initOutputModule(bulkVtkWriter);
+        LowDimIOFields::initOutputModule(lowDimVtkWriter);
 
         bulkExact.resize(bulkFvGridGeometry->numDofs());
         lowDimExact.resize(lowDimFvGridGeometry->numDofs());
diff --git a/test/multidomain/facet/1p_1p/threedomain/test_facetcoupling_tpfa_1p1p_threedomain.cc b/test/multidomain/facet/1p_1p/threedomain/test_facetcoupling_tpfa_1p1p_threedomain.cc
index d755f44b0b99d13f114977814f7e05bc6971b4a7..fe8edaccf1a8780ca2fb1bed2e95f368a8f1b35c 100644
--- a/test/multidomain/facet/1p_1p/threedomain/test_facetcoupling_tpfa_1p1p_threedomain.cc
+++ b/test/multidomain/facet/1p_1p/threedomain/test_facetcoupling_tpfa_1p1p_threedomain.cc
@@ -186,9 +186,9 @@ int main(int argc, char** argv) try
     using BulkIOFields = typename GET_PROP_TYPE(BulkProblemTypeTag, IOFields);
     using FacetIOFields = typename GET_PROP_TYPE(FacetProblemTypeTag, IOFields);
     using EdgeIOFields = typename GET_PROP_TYPE(EdgeProblemTypeTag, IOFields);
-    BulkIOFields::init(bulkVtkWriter);
-    FacetIOFields::init(facetVtkWriter);
-    EdgeIOFields::init(edgeVtkWriter);
+    BulkIOFields::initOutputModule(bulkVtkWriter);
+    FacetIOFields::initOutputModule(facetVtkWriter);
+    EdgeIOFields::initOutputModule(edgeVtkWriter);
     bulkVtkWriter.write(0.0);
     facetVtkWriter.write(0.0);
     edgeVtkWriter.write(0.0);
diff --git a/test/porousmediumflow/1p/implicit/periodicbc/test_1pfv.cc b/test/porousmediumflow/1p/implicit/periodicbc/test_1pfv.cc
index 5402c046e04d4fd6cb6872ef39ee5831ca61994b..160f8afe736bdf15dc96c04b7287e1a21bcdde8c 100644
--- a/test/porousmediumflow/1p/implicit/periodicbc/test_1pfv.cc
+++ b/test/porousmediumflow/1p/implicit/periodicbc/test_1pfv.cc
@@ -103,7 +103,7 @@ int main(int argc, char** argv) try
     // intialize the vtk output module
     VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
     using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
-    IOFields::init(vtkWriter); //!< Add model specific output fields
+    IOFields::initOutputModule(vtkWriter); //!< Add model specific output fields
     vtkWriter.write(0.0);
 
     // make assemble and attach linear system