diff --git a/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh b/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
index 6025e41166762f012ad86af75eb05fe1af09e970..c18851f0c8d948f564747e1377a5bf70cd1f39f8 100644
--- a/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
+++ b/test/porousmediumflow/2p/implicit/nonisothermal/problem.hh
@@ -46,7 +46,7 @@
 #include <dumux/material/components/n2.hh>
 
 // use the spatial parameters as the injection problem of the 2p2c test program
-#include <test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh>
+#include <test/porousmediumflow/2p2c/implicit/injection/spatialparams.hh>
 
 #ifndef GRIDTYPE // default to yasp grid if not provided by CMake
 #define GRIDTYPE Dune::YaspGrid<2>
diff --git a/test/porousmediumflow/2p2c/implicit/CMakeLists.txt b/test/porousmediumflow/2p2c/implicit/CMakeLists.txt
index bd51d78efdbaee1d09bc6a2cc458f5fc3184117c..3d986ecfcbd320fe30e1dc204941819011d0f17f 100644
--- a/test/porousmediumflow/2p2c/implicit/CMakeLists.txt
+++ b/test/porousmediumflow/2p2c/implicit/CMakeLists.txt
@@ -1,98 +1,3 @@
-add_subdirectory(mpnccomparison)
-add_input_file_links()
-
-dune_add_test(NAME test_2p2c_box
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionBoxTypeTag ENABLECACHING=0
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectionbox-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_box-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_box test_2p2c_fv.input -Problem.Name injection_box")
-
-dune_add_test(NAME test_2p2c_box_restart
-              TARGET test_2p2c_box
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectionbox-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_box_restart-00004.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_box test_2p2c_fv.input -Problem.Name injection_box_restart -TimeLoop.DtInitial 1488.5 -Restart.Time 2158.85 -Restart.File injection_box-00004.vtu")
-
-# the restart test has to run after the test that produces the corresponding vtu file
-set_tests_properties(test_2p2c_box_restart PROPERTIES DEPENDS test_2p2c_box)
-
-dune_add_test(NAME test_2p2c_tpfa
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionCCTpfa ENABLECACHING=0
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectioncc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_tpfa-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_tpfa test_2p2c_fv.input -Problem.Name injection_tpfa")
-
-dune_add_test(NAME test_2p2c_mpfa
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionCCMpfa ENABLECACHING=0
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectioncc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_mpfa-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpfa test_2p2c_fv.input -Problem.Name injection_mpfa")
-
-# isothermal tests with caching
-dune_add_test(NAME test_2p2c_box_caching
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionBoxTypeTag ENABLECACHING=1
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectionbox-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_box_caching-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_box_caching test_2p2c_fv.input -Problem.Name injection_box_caching")
-
-dune_add_test(NAME test_2p2c_tpfa_caching
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionCCTpfa ENABLECACHING=1
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectioncc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_tpfa_caching-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_tpfa_caching test_2p2c_fv.input -Problem.Name injection_tpfa_caching")
-
-dune_add_test(NAME test_2p2c_mpfa_caching
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=InjectionCCMpfa ENABLECACHING=1
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/injectioncc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/injection_mpfa_caching-00008.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpfa_caching test_2p2c_fv.input -Problem.Name injection_mpfa_caching")
-
-# non-isothermal tests
-dune_add_test(NAME test_2p2cni_box
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=WaterAirBox ENABLECACHING=0
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/waterairbox-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/waterair_box-00013.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_box test_2p2cni_fv.input -Problem.Name waterair_box")
-
-dune_add_test(NAME test_2p2cni_tpfa
-              SOURCES test_2p2c_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=WaterAirCCTpfa ENABLECACHING=0
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/wateraircc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/waterair_tpfa-00013.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_tpfa test_2p2cni_fv.input -Problem.Name waterair_tpfa")
-
-#install sources
-install(FILES
-injectionproblem.hh
-injectionspatialparams.hh
-waterairproblem.hh
-waterairspatialparams.hh
-test_2p2c_fv.cc
-test_2p2c_fv.input
-test_2p2cni_fv.input
-DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2p2c)
+add_subdirectory("injection")
+add_subdirectory("mpnccomparison")
+add_subdirectory("waterair")
diff --git a/test/porousmediumflow/2p2c/implicit/injection/CMakeLists.txt b/test/porousmediumflow/2p2c/implicit/injection/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..58edfc1a5dcaf78d7c1a0eab67712e5168498e3a
--- /dev/null
+++ b/test/porousmediumflow/2p2c/implicit/injection/CMakeLists.txt
@@ -0,0 +1,74 @@
+add_input_file_links(FILES params.input)
+
+dune_add_test(NAME test_2p2c_injection_box
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionBox ENABLECACHING=0
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box params.input -Problem.Name test_2p2c_injection_box")
+
+dune_add_test(NAME test_2p2c_injection_box_restart
+              TARGET test_2p2c_injection_box
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box_restart-00004.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box params.input -Problem.Name test_2p2c_injection_box_restart -TimeLoop.DtInitial 1488.5 -Restart.Time 2158.85 -Restart.File test_2p2c_injection_box-00004.vtu")
+
+# the restart test has to run after the test that produces the corresponding vtu file
+set_tests_properties(test_2p2c_injection_box_restart PROPERTIES DEPENDS test_2p2c_injection_box)
+
+dune_add_test(NAME test_2p2c_injection_tpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionCCTpfa ENABLECACHING=0
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_cc-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_tpfa-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_tpfa params.input -Problem.Name test_2p2c_injection_tpfa")
+
+dune_add_test(NAME test_2p2c_injection_mpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionCCMpfa ENABLECACHING=0
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_cc-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_mpfa-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_mpfa params.input -Problem.Name test_2p2c_injection_mpfa")
+
+# isothermal tests with caching
+dune_add_test(NAME test_2p2c_injection_box_caching
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionBox ENABLECACHING=1
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box_caching-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_box_caching params.input -Problem.Name test_2p2c_injection_box_caching")
+
+dune_add_test(NAME test_2p2c_injection_tpfa_caching
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionCCTpfa ENABLECACHING=1
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_cc-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_tpfa_caching-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_tpfa_caching params.input -Problem.Name test_2p2c_injection_tpfa_caching")
+
+dune_add_test(NAME test_2p2c_injection_mpfa_caching
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=InjectionCCMpfa ENABLECACHING=1
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2c_injection_cc-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_mpfa_caching-00008.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_injection_mpfa_caching params.input -Problem.Name test_2p2c_injection_mpfa_caching")
+
+#install sources
+install(FILES
+problem.hh
+spatialparams.hh
+main.cc
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2p2c/injection)
diff --git a/test/porousmediumflow/2p2c/implicit/injection/main.cc b/test/porousmediumflow/2p2c/implicit/injection/main.cc
new file mode 100644
index 0000000000000000000000000000000000000000..17bb091a48719f06a57c3327bd8bd5bb2f6b3dd0
--- /dev/null
+++ b/test/porousmediumflow/2p2c/implicit/injection/main.cc
@@ -0,0 +1,213 @@
+// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+// vi: set et ts=4 sw=4 sts=4:
+/*****************************************************************************
+ *   See the file COPYING for full copying permissions.                      *
+ *                                                                           *
+ *   This program is free software: you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation, either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the            *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
+ *****************************************************************************/
+/*!
+ * \file
+ *
+ * \brief Test for the two-phase two-component CC model.
+ */
+#include <config.h>
+#include <ctime>
+#include <iostream>
+
+#include <dune/common/parallel/mpihelper.hh>
+#include <dune/common/timer.hh>
+#include <dune/grid/io/file/dgfparser/dgfexception.hh>
+#include <dune/grid/io/file/vtk.hh>
+#include <dune/istl/io.hh>
+
+#include <dumux/common/properties.hh>
+#include <dumux/common/parameters.hh>
+#include <dumux/common/valgrind.hh>
+#include <dumux/common/dumuxmessage.hh>
+#include <dumux/common/defaultusagemessage.hh>
+
+#include <dumux/linear/amgbackend.hh>
+#include <dumux/nonlinear/privarswitchnewtonsolver.hh>
+
+#include <dumux/assembly/fvassembler.hh>
+#include <dumux/assembly/diffmethod.hh>
+
+#include <dumux/discretization/methods.hh>
+
+#include <dumux/io/vtkoutputmodule.hh>
+#include <dumux/io/grid/gridmanager.hh>
+#include <dumux/io/loadsolution.hh>
+
+// the problem definitions
+#include "problem.hh"
+
+int main(int argc, char** argv) try
+{
+    using namespace Dumux;
+
+    // define the type tag for this problem
+    using TypeTag = TTAG(TYPETAG);
+
+    // initialize MPI, finalize is done automatically on exit
+    const auto& mpiHelper = Dune::MPIHelper::instance(argc, argv);
+
+    // print dumux start message
+    if (mpiHelper.rank() == 0)
+        DumuxMessage::print(/*firstCall=*/true);
+
+    // parse command line arguments and input file
+    Parameters::init(argc, argv);
+
+    // try to create a grid (from the given grid file or the input file)
+    GridManager<typename GET_PROP_TYPE(TypeTag, Grid)> gridManager;
+    gridManager.init();
+
+    ////////////////////////////////////////////////////////////
+    // run instationary non-linear problem on this grid
+    ////////////////////////////////////////////////////////////
+
+    // we compute on the leaf grid view
+    const auto& leafGridView = gridManager.grid().leafGridView();
+
+    // create the finite volume grid geometry
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    auto fvGridGeometry = std::make_shared<FVGridGeometry>(leafGridView);
+    fvGridGeometry->update();
+
+    // the problem (initial and boundary conditions)
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    auto problem = std::make_shared<Problem>(fvGridGeometry);
+
+    // get some time loop parameters
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    const auto tEnd = getParam<Scalar>("TimeLoop.TEnd");
+    const auto maxDt = getParam<Scalar>("TimeLoop.MaxTimeStepSize");
+    auto dt = getParam<Scalar>("TimeLoop.DtInitial");
+
+    // check if we are about to restart a previously interrupted simulation
+    Scalar restartTime = getParam<Scalar>("Restart.Time", 0);
+
+    // the solution vector
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    SolutionVector x(fvGridGeometry->numDofs());
+    if (restartTime > 0)
+    {
+        using IOFields = typename GET_PROP_TYPE(TypeTag, IOFields);
+        using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+        using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+        const auto fileName = getParam<std::string>("Restart.File");
+        const auto pvName = createPVNameFunction<IOFields, PrimaryVariables, ModelTraits, FluidSystem>();
+        loadSolution(x, fileName, pvName, *fvGridGeometry);
+    }
+    else
+        problem->applyInitialSolution(x);
+    auto xOld = x;
+
+    // the grid variables
+    using GridVariables = typename GET_PROP_TYPE(TypeTag, GridVariables);
+    auto gridVariables = std::make_shared<GridVariables>(problem, fvGridGeometry);
+    gridVariables->init(x, xOld);
+
+    // intialize the vtk output module
+    using VtkOutputFields = typename GET_PROP_TYPE(TypeTag, VtkOutputFields);
+    VtkOutputModule<GridVariables, SolutionVector> vtkWriter(*gridVariables, x, problem->name());
+    using VelocityOutput = typename GET_PROP_TYPE(TypeTag, VelocityOutput);
+    vtkWriter.addVelocityOutput(std::make_shared<VelocityOutput>(*gridVariables));
+    VtkOutputFields::initOutputModule(vtkWriter); //!< Add model specific output fields
+    vtkWriter.write(restartTime);
+
+    // instantiate time loop
+    auto timeLoop = std::make_shared<TimeLoop<Scalar>>(restartTime, dt, tEnd);
+    timeLoop->setMaxTimeStepSize(maxDt);
+
+    // the assembler with time loop for instationary problem
+    using Assembler = FVAssembler<TypeTag, DiffMethod::numeric>;
+    auto assembler = std::make_shared<Assembler>(problem, fvGridGeometry, gridVariables, timeLoop);
+
+    // the linear solver
+    using LinearSolver = AMGBackend<TypeTag>;
+    auto linearSolver = std::make_shared<LinearSolver>(leafGridView, fvGridGeometry->dofMapper());
+
+    // the non-linear solver
+    using NewtonSolver = PriVarSwitchNewtonSolver<Assembler, LinearSolver,
+                                                 typename GET_PROP_TYPE(TypeTag, PrimaryVariableSwitch)>;
+    NewtonSolver nonLinearSolver(assembler, linearSolver);
+
+    // time loop
+    timeLoop->start(); do
+    {
+        // set previous solution for storage evaluations
+        assembler->setPreviousSolution(xOld);
+
+        // solve the non-linear system with time step control
+        nonLinearSolver.solve(x, *timeLoop);
+
+        // make the new solution the old solution
+        xOld = x;
+        gridVariables->advanceTimeStep();
+
+        // advance to the time loop to the next step
+        timeLoop->advanceTimeStep();
+
+        // report statistics of this time step
+        timeLoop->reportTimeStep();
+
+        // set new dt as suggested by the newton solver
+        timeLoop->setTimeStepSize(nonLinearSolver.suggestTimeStepSize(timeLoop->timeStepSize()));
+
+        // write vtk output
+        vtkWriter.write(timeLoop->time());
+
+    } while (!timeLoop->finished());
+
+    timeLoop->finalize(leafGridView.comm());
+
+    ////////////////////////////////////////////////////////////
+    // finalize, print dumux message to say goodbye
+    ////////////////////////////////////////////////////////////
+
+    // print dumux end message
+    if (mpiHelper.rank() == 0)
+    {
+        Parameters::print();
+        DumuxMessage::print(/*firstCall=*/false);
+    }
+
+    return 0;
+} // end main
+catch (Dumux::ParameterException &e)
+{
+    std::cerr << std::endl << e << " ---> Abort!" << std::endl;
+    return 1;
+}
+catch (Dune::DGFException & e)
+{
+    std::cerr << "DGF exception thrown (" << e <<
+                 "). Most likely, the DGF file name is wrong "
+                 "or the DGF file is corrupted, "
+                 "e.g. missing hash at end of file or wrong number (dimensions) of entries."
+                 << " ---> Abort!" << std::endl;
+    return 2;
+}
+catch (Dune::Exception &e)
+{
+    std::cerr << "Dune reported error: " << e << " ---> Abort!" << std::endl;
+    return 3;
+}
+catch (...)
+{
+    std::cerr << "Unknown exception thrown! ---> Abort!" << std::endl;
+    return 4;
+}
diff --git a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.input b/test/porousmediumflow/2p2c/implicit/injection/params.input
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/test_2p2c_fv.input
rename to test/porousmediumflow/2p2c/implicit/injection/params.input
diff --git a/test/porousmediumflow/2p2c/implicit/injectionproblem.hh b/test/porousmediumflow/2p2c/implicit/injection/problem.hh
similarity index 99%
rename from test/porousmediumflow/2p2c/implicit/injectionproblem.hh
rename to test/porousmediumflow/2p2c/implicit/injection/problem.hh
index 7d06993be888a6497160e939fc7825863f38a071..dcb28bcc24efeea4565a29f3a9c0bc1bf01a0577 100644
--- a/test/porousmediumflow/2p2c/implicit/injectionproblem.hh
+++ b/test/porousmediumflow/2p2c/implicit/injection/problem.hh
@@ -34,7 +34,7 @@
 #include <dumux/porousmediumflow/2p2c/model.hh>
 #include <dumux/material/fluidsystems/h2on2.hh>
 
-#include "injectionspatialparams.hh"
+#include "spatialparams.hh"
 
 namespace Dumux {
 
@@ -47,7 +47,7 @@ class InjectionProblem;
 
 namespace Properties {
 NEW_TYPE_TAG(Injection, INHERITS_FROM(TwoPTwoC));
-NEW_TYPE_TAG(InjectionBoxTypeTag, INHERITS_FROM(BoxModel, Injection));
+NEW_TYPE_TAG(InjectionBox, INHERITS_FROM(BoxModel, Injection));
 NEW_TYPE_TAG(InjectionCCTpfa, INHERITS_FROM(CCTpfaModel, Injection));
 NEW_TYPE_TAG(InjectionCCMpfa, INHERITS_FROM(CCMpfaModel, Injection));
 
diff --git a/test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh b/test/porousmediumflow/2p2c/implicit/injection/spatialparams.hh
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/injectionspatialparams.hh
rename to test/porousmediumflow/2p2c/implicit/injection/spatialparams.hh
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/CMakeLists.txt b/test/porousmediumflow/2p2c/implicit/mpnccomparison/CMakeLists.txt
index bbaf78f80c18aea8a300b7bef304ca7491730dd4..0b7995364f26ef26f401893e7e1c70a7c5d59260 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/CMakeLists.txt
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/CMakeLists.txt
@@ -1,26 +1,26 @@
 add_input_file_links()
 
-dune_add_test(SOURCES test_2p2c_comparison_fv.cc
-              NAME test_2p2c_comparison_box
+dune_add_test(NAME test_2p2c_mpnc_comparison_box
+              SOURCES main.cc
               COMPILE_DEFINITIONS TYPETAG=TwoPTwoCComparisonBox
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/mpnc_2p2c_box-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_comparison_box-00009.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_comparison_box test_2p2c_comparison_fv.input -Problem.Name test_2p2c_comparison_box")
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2c_comparison_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpnc_comparison_box-00009.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpnc_comparison_box params.input -Problem.Name test_2p2c_mpnc_comparison_box")
 
-dune_add_test(SOURCES test_2p2c_comparison_fv.cc
-              NAME test_2p2c_comparison_tpfa
+dune_add_test(NAME test_2p2c_mpnc_comparison_tpfa
+              SOURCES main.cc
               COMPILE_DEFINITIONS TYPETAG=TwoPTwoCComparisonCC
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/mpnc_2p2c_tpfa-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_comparison_tpfa-00009.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_comparison_tpfa test_2p2c_comparison_fv.input -Problem.Name test_2p2c_comparison_tpfa")
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2c_comparison_tpfa-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpnc_comparison_tpfa-00009.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2c_mpnc_comparison_tpfa params.input -Problem.Name test_2p2c_mpnc_comparison_tpfa")
 
 #install sources
 install(FILES
-2p2c_comparison_problem.hh
-2p2c_comparison_spatialparams.hh
-test_2p2c_comparison_fv.cc
+main.cc
+problem.hh
+spatialparams.hh
 DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2p2c/comparison)
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/test_2p2c_comparison_fv.cc b/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
similarity index 99%
rename from test/porousmediumflow/2p2c/implicit/mpnccomparison/test_2p2c_comparison_fv.cc
rename to test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
index 3225fd7be8c4aa6943515231084a0e5d7b2537cb..0c26d3f02c961fe8e4ffd94d7a0e3c11aa60d3cf 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/test_2p2c_comparison_fv.cc
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/main.cc
@@ -46,7 +46,7 @@
 #include <dumux/io/vtkoutputmodule.hh>
 #include <dumux/io/grid/gridmanager.hh>
 
-#include "2p2c_comparison_problem.hh"
+#include "problem.hh"
 
 /*!
  * \brief Provides an interface for customizing error messages associated with
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/test_2p2c_comparison_fv.input b/test/porousmediumflow/2p2c/implicit/mpnccomparison/params.input
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/mpnccomparison/test_2p2c_comparison_fv.input
rename to test/porousmediumflow/2p2c/implicit/mpnccomparison/params.input
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_problem.hh b/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
similarity index 99%
rename from test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_problem.hh
rename to test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
index a5e708c2e8f4344c957c540e636a9a846fb3ef4a..70eb6943fb7af27734f2fe45fc3a094194fe9393 100644
--- a/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_problem.hh
+++ b/test/porousmediumflow/2p2c/implicit/mpnccomparison/problem.hh
@@ -35,7 +35,7 @@
 #include <dumux/material/fluidsystems/h2on2.hh>
 #include <dumux/material/fluidstates/compositional.hh>
 
-#include "2p2c_comparison_spatialparams.hh"
+#include "spatialparams.hh"
 #include "iofields.hh"
 
 namespace Dumux {
diff --git a/test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh b/test/porousmediumflow/2p2c/implicit/mpnccomparison/spatialparams.hh
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/mpnccomparison/2p2c_comparison_spatialparams.hh
rename to test/porousmediumflow/2p2c/implicit/mpnccomparison/spatialparams.hh
diff --git a/test/porousmediumflow/2p2c/implicit/waterair/CMakeLists.txt b/test/porousmediumflow/2p2c/implicit/waterair/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..deeda2f7a229548daa8703b5137f4baf37fb9d08
--- /dev/null
+++ b/test/porousmediumflow/2p2c/implicit/waterair/CMakeLists.txt
@@ -0,0 +1,27 @@
+add_input_file_links(FILES params.input)
+
+# non-isothermal tests
+dune_add_test(NAME test_2p2cni_waterair_box
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=WaterAirBox ENABLECACHING=0
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2cni_waterair_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_waterair_box-00013.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_waterair_box params.input -Problem.Name test_2p2cni_waterair_box")
+
+dune_add_test(NAME test_2p2cni_waterair_tpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=WaterAirCCTpfa ENABLECACHING=0
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2p2cni_waterair_tpfa-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_waterair_tpfa-00013.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2p2cni_waterair_tpfa params.input -Problem.Name test_2p2cni_waterair_tpfa")
+
+#install sources
+install(FILES
+problem.hh
+spatialparams.hh
+main.cc
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2p2c/waterair)
diff --git a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc b/test/porousmediumflow/2p2c/implicit/waterair/main.cc
similarity index 99%
rename from test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
rename to test/porousmediumflow/2p2c/implicit/waterair/main.cc
index 32af683f5b6ec1b871ab2ed5d04ca3acaecd1888..f70752c98c885fa339a20ce9075f7d644d9efd05 100644
--- a/test/porousmediumflow/2p2c/implicit/test_2p2c_fv.cc
+++ b/test/porousmediumflow/2p2c/implicit/waterair/main.cc
@@ -50,8 +50,7 @@
 #include <dumux/io/loadsolution.hh>
 
 // the problem definitions
-#include "injectionproblem.hh"
-#include "waterairproblem.hh"
+#include "problem.hh"
 
 int main(int argc, char** argv) try
 {
diff --git a/test/porousmediumflow/2p2c/implicit/test_2p2cni_fv.input b/test/porousmediumflow/2p2c/implicit/waterair/params.input
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/test_2p2cni_fv.input
rename to test/porousmediumflow/2p2c/implicit/waterair/params.input
diff --git a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh b/test/porousmediumflow/2p2c/implicit/waterair/problem.hh
similarity index 99%
rename from test/porousmediumflow/2p2c/implicit/waterairproblem.hh
rename to test/porousmediumflow/2p2c/implicit/waterair/problem.hh
index 0432a284e945d3dcc64ffca46030b4aba20dae3a..840993a2da43d63af730902a54033d6e3428c9d2 100644
--- a/test/porousmediumflow/2p2c/implicit/waterairproblem.hh
+++ b/test/porousmediumflow/2p2c/implicit/waterair/problem.hh
@@ -36,7 +36,7 @@
 #include <dumux/porousmediumflow/2p2c/model.hh>
 #include <dumux/porousmediumflow/problem.hh>
 
-#include "waterairspatialparams.hh"
+#include "spatialparams.hh"
 
 namespace Dumux {
 /*!
diff --git a/test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh b/test/porousmediumflow/2p2c/implicit/waterair/spatialparams.hh
similarity index 100%
rename from test/porousmediumflow/2p2c/implicit/waterairspatialparams.hh
rename to test/porousmediumflow/2p2c/implicit/waterair/spatialparams.hh
diff --git a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/CMakeLists.txt b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/CMakeLists.txt
index a896528e3dc5e45c90fb96530617e47348911ddd..e233b1b0961b640a444e7de1b169d106919390f1 100644
--- a/test/porousmediumflow/mpnc/implicit/2p2ccomparison/CMakeLists.txt
+++ b/test/porousmediumflow/mpnc/implicit/2p2ccomparison/CMakeLists.txt
@@ -1,22 +1,22 @@
 add_input_file_links()
 
-dune_add_test(NAME test_mpnc_2p2ccomparison_box
+dune_add_test(NAME test_mpnc_2p2c_comparison_box
               SOURCES main.cc
               COMPILE_DEFINITIONS TYPETAG=MPNCComparisonBox
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
-                        --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2ccomparison_box-reference.vtu
-                                ${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2ccomparison_box-00009.vtu
-                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2ccomparison_box params.input -Problem.Name test_mpnc_2p2ccomparison_box")
+                        --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2c_comparison_box-reference.vtu
+                                ${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2c_comparison_box-00009.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2c_comparison_box params.input -Problem.Name test_mpnc_2p2c_comparison_box")
 
-dune_add_test(NAME test_mpnc_2p2ccomparison_tpfa
+dune_add_test(NAME test_mpnc_2p2c_comparison_tpfa
               SOURCES main.cc
               COMPILE_DEFINITIONS TYPETAG=MPNCComparisonCC
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
-                        --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2ccomparison_tpfa-reference.vtu
-                                ${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2ccomparison_tpfa-00009.vtu
-                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2ccomparison_tpfa params.input -Problem.Name test_mpnc_2p2ccomparison_tpfa")
+                        --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_2p2c_comparison_tpfa-reference.vtu
+                                ${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2c_comparison_tpfa-00009.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_mpnc_2p2c_comparison_tpfa params.input -Problem.Name test_mpnc_2p2c_comparison_tpfa")
 
 #install sources
 install(FILES
diff --git a/test/porousmediumflow/mpnc/implicit/obstacle/CMakeLists.txt b/test/porousmediumflow/mpnc/implicit/obstacle/CMakeLists.txt
index ba3a883030364d081c942e50782c09798d5005e6..bc50f0573eb5e4421e6cb84644157e8d6a12159c 100644
--- a/test/porousmediumflow/mpnc/implicit/obstacle/CMakeLists.txt
+++ b/test/porousmediumflow/mpnc/implicit/obstacle/CMakeLists.txt
@@ -3,7 +3,7 @@ dune_symlink_to_source_files(FILES grids)
 
 dune_add_test(NAME test_mpnc_obstacle_box
               SOURCES main.cc
-              COMPILE_DEFINITIONS TYPETAG=ObstacleBoxTypeTag
+              COMPILE_DEFINITIONS TYPETAG=ObstacleBox
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
                         --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_obstacle_box-reference.vtu
@@ -12,7 +12,7 @@ dune_add_test(NAME test_mpnc_obstacle_box
 
 dune_add_test(NAME test_mpnc_obstacle_tpfa
               SOURCES main.cc
-              COMPILE_DEFINITIONS TYPETAG=ObstacleCCTypeTag
+              COMPILE_DEFINITIONS TYPETAG=ObstacleCC
               COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
               CMD_ARGS  --script fuzzy
                         --files ${CMAKE_SOURCE_DIR}/test/references/test_mpnc_obstacle_tpfa-reference.vtu
diff --git a/test/references/injectionbox-reference.vtu b/test/references/test_2p2c_injection_box-reference.vtu
similarity index 100%
rename from test/references/injectionbox-reference.vtu
rename to test/references/test_2p2c_injection_box-reference.vtu
diff --git a/test/references/injectioncc-reference.vtu b/test/references/test_2p2c_injection_cc-reference.vtu
similarity index 100%
rename from test/references/injectioncc-reference.vtu
rename to test/references/test_2p2c_injection_cc-reference.vtu
diff --git a/test/references/waterairbox-reference.vtu b/test/references/test_2p2cni_waterair_box-reference.vtu
similarity index 100%
rename from test/references/waterairbox-reference.vtu
rename to test/references/test_2p2cni_waterair_box-reference.vtu
diff --git a/test/references/wateraircc-reference.vtu b/test/references/test_2p2cni_waterair_tpfa-reference.vtu
similarity index 100%
rename from test/references/wateraircc-reference.vtu
rename to test/references/test_2p2cni_waterair_tpfa-reference.vtu
diff --git a/test/references/test_mpnc_2p2ccomparison_box-reference.vtu b/test/references/test_mpnc_2p2c_comparison_box-reference.vtu
similarity index 100%
rename from test/references/test_mpnc_2p2ccomparison_box-reference.vtu
rename to test/references/test_mpnc_2p2c_comparison_box-reference.vtu
diff --git a/test/references/test_mpnc_2p2ccomparison_tpfa-reference.vtu b/test/references/test_mpnc_2p2c_comparison_tpfa-reference.vtu
similarity index 100%
rename from test/references/test_mpnc_2p2ccomparison_tpfa-reference.vtu
rename to test/references/test_mpnc_2p2c_comparison_tpfa-reference.vtu