diff --git a/test/porousmediumflow/2pnc/implicit/CMakeLists.txt b/test/porousmediumflow/2pnc/implicit/CMakeLists.txt
index 3737d38436e80badc113676169bef39b862029e8..b509897b295dfe9539e275cc537f550a9b0fc0af 100644
--- a/test/porousmediumflow/2pnc/implicit/CMakeLists.txt
+++ b/test/porousmediumflow/2pnc/implicit/CMakeLists.txt
@@ -1,61 +1,2 @@
-dune_symlink_to_source_files(FILES test_2pnc_fv.input test_2pnc_diffusion.input)
-
-# isothermal tests
-dune_add_test(NAME test_2pnc_box
-              SOURCES test_2pnc_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=FuelCellBox
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/fuelcell2pncbox-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/fuelcell_box-00015.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_box -ParameterFile test_2pnc_fv.input -Problem.Name fuelcell_box")
-
-dune_add_test(NAME test_2pnc_tpfa
-              SOURCES test_2pnc_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=FuelCellCCTpfa
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/fuelcell2pnccc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/fuelcell_tpfa-00015.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_tpfa -ParameterFile test_2pnc_fv.input -Problem.Name fuelcell_tpfa")
-
-dune_add_test(NAME test_cc2pnc_maxwellstefan
-              SOURCES test_cc2pnc_diffusion.cc
-              COMPILE_DEFINITIONS TYPETAG=TwoPNCDiffusion DIFFUSIONTYPE=MaxwellStefansLaw<TypeTag>
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS  --script fuzzy
-                        --files ${CMAKE_SOURCE_DIR}/test/references/2pncdiffusioncc-reference.vtu
-                                 ${CMAKE_CURRENT_BINARY_DIR}/test_cc2pnc_maxwellstefan-00026.vtu
-                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_cc2pnc_maxwellstefan test_2pnc_diffusion.input -Problem.Name test_cc2pnc_maxwellstefan")
-
-dune_add_test(NAME test_cc2pnc_fickslaw
-              SOURCES test_cc2pnc_diffusion.cc
-              COMPILE_DEFINITIONS TYPETAG=TwoPNCDiffusion DIFFUSIONTYPE=FicksLaw<TypeTag>
-              COMMAND  ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/2pncdiffusioncc-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/test_cc2pnc_fickslaw-00026.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_cc2pnc_fickslaw test_2pnc_diffusion.input -Problem.Name test_cc2pnc_fickslaw")
-
-dune_add_test(NAME test_2pncni_box
-              SOURCES test_2pnc_fv.cc
-              COMPILE_DEFINITIONS TYPETAG=FuelCellNIBox NONISOTHERMAL=1
-              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
-              CMD_ARGS --script fuzzy
-                       --files ${CMAKE_SOURCE_DIR}/test/references/fuelcell2pncboxni-reference.vtu
-                               ${CMAKE_CURRENT_BINARY_DIR}/fuelcell_ni_box-00015.vtu
-                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pncni_box -ParameterFile test_2pnc_fv.input -Problem.Name fuelcell_ni_box")
-
-#install sources
-install(FILES
-fuelcellproblem.hh
-fuelcellniproblem.hh
-fuelcellspatialparams.hh
-test_2pnc_fv.cc
-test_2pnc_fvni.cc
-test_2pnc_fv.input
-test_cc2pnc_diffusion.cc
-maxwellstefandiffusion.hh
-maxwellstefandiffusionspatialparams.hh
-DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2pnc)
-set(CMAKE_BUILD_TYPE Release)
+add_subdirectory("diffusion")
+add_subdirectory("fuelcell")
diff --git a/test/porousmediumflow/2pnc/implicit/diffusion/CMakeLists.txt b/test/porousmediumflow/2pnc/implicit/diffusion/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..269fe82fe1a667cdc017f0a02f614c00c617ab41
--- /dev/null
+++ b/test/porousmediumflow/2pnc/implicit/diffusion/CMakeLists.txt
@@ -0,0 +1,28 @@
+dune_symlink_to_source_files(FILES params.input)
+
+dune_add_test(NAME test_2pnc_maxwellstefan_tpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=TwoPNCDiffusion DIFFUSIONTYPE=MaxwellStefansLaw<TypeTag>
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS  --script fuzzy
+                        --files ${CMAKE_SOURCE_DIR}/test/references/test_2pnc_diffusion_tpfa-reference.vtu
+                                 ${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_maxwellstefan_tpfa-00026.vtu
+                        --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_maxwellstefan_tpfa params.input -Problem.Name test_2pnc_maxwellstefan_tpfa")
+
+dune_add_test(NAME test_2pnc_fickslaw_tpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=TwoPNCDiffusion DIFFUSIONTYPE=FicksLaw<TypeTag>
+              COMMAND  ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2pnc_diffusion_tpfa-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fickslaw_tpfa-00026.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fickslaw_tpfa params.input -Problem.Name test_2pnc_fickslaw_tpfa")
+
+
+#install sources
+install(FILES
+main.cc
+problem.hh
+spatialparams.hh
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2pnc/diffusion)
+set(CMAKE_BUILD_TYPE Release)
diff --git a/test/porousmediumflow/2pnc/implicit/test_cc2pnc_diffusion.cc b/test/porousmediumflow/2pnc/implicit/diffusion/main.cc
similarity index 99%
rename from test/porousmediumflow/2pnc/implicit/test_cc2pnc_diffusion.cc
rename to test/porousmediumflow/2pnc/implicit/diffusion/main.cc
index 4c28d5a862230c9df490f422a673d4ccace6c33d..f9984398a5f206df36d64a12608d51928b4aba4b 100644
--- a/test/porousmediumflow/2pnc/implicit/test_cc2pnc_diffusion.cc
+++ b/test/porousmediumflow/2pnc/implicit/diffusion/main.cc
@@ -32,7 +32,7 @@
 #include <dune/grid/io/file/vtk.hh>
 #include <dune/istl/io.hh>
 
-#include "2pncdiffusionproblem.hh"
+#include "problem.hh"
 
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
diff --git a/test/porousmediumflow/2pnc/implicit/test_2pnc_diffusion.input b/test/porousmediumflow/2pnc/implicit/diffusion/params.input
similarity index 100%
rename from test/porousmediumflow/2pnc/implicit/test_2pnc_diffusion.input
rename to test/porousmediumflow/2pnc/implicit/diffusion/params.input
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh b/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
similarity index 99%
rename from test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
rename to test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
index 7205c68b5a0fe7d68119ba9ef9e476109c8e2c7d..15022321d232684c05b2e1940fa8827da0fd1c8a 100644
--- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/diffusion/problem.hh
@@ -32,7 +32,7 @@
 #include <dumux/porousmediumflow/problem.hh>
 #include <dumux/material/fluidsystems/h2on2.hh>
 
-#include "2pncdiffusionspatialparams.hh"
+#include "spatialparams.hh"
 #include <dumux/discretization/maxwellstefanslaw.hh>
 
 #ifndef DIFFUSIONTYPE // default to Fick's law if not set through CMake
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh b/test/porousmediumflow/2pnc/implicit/diffusion/spatialparams.hh
similarity index 100%
rename from test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
rename to test/porousmediumflow/2pnc/implicit/diffusion/spatialparams.hh
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcell/CMakeLists.txt b/test/porousmediumflow/2pnc/implicit/fuelcell/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..a4211068108ad44570d37fa8535b3e7ae09e0685
--- /dev/null
+++ b/test/porousmediumflow/2pnc/implicit/fuelcell/CMakeLists.txt
@@ -0,0 +1,38 @@
+dune_symlink_to_source_files(FILES params.input)
+
+# isothermal tests
+dune_add_test(NAME test_2pnc_fuelcell_box
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=FuelCellBox
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2pnc_fuelcell_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fuelcell_box-00015.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fuelcell_box -ParameterFile params.input -Problem.Name test_2pnc_fuelcell_box")
+
+dune_add_test(NAME test_2pnc_fuelcell_tpfa
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=FuelCellCCTpfa
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2pnc_fuelcell_tpfa-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fuelcell_tpfa-00015.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pnc_fuelcell_tpfa -ParameterFile params.input -Problem.Name test_2pnc_fuelcell_tpfa")
+
+
+dune_add_test(NAME test_2pncni_fuelcell_box
+              SOURCES main.cc
+              COMPILE_DEFINITIONS TYPETAG=FuelCellNIBox NONISOTHERMAL=1
+              COMMAND ${CMAKE_SOURCE_DIR}/bin/testing/runtest.py
+              CMD_ARGS --script fuzzy
+                       --files ${CMAKE_SOURCE_DIR}/test/references/test_2pncni_fuelcell_box-reference.vtu
+                               ${CMAKE_CURRENT_BINARY_DIR}/test_2pncni_fuelcell_box-00015.vtu
+                       --command "${CMAKE_CURRENT_BINARY_DIR}/test_2pncni_fuelcell_box -ParameterFile params.input -Problem.Name test_2pncni_fuelcell_box")
+
+#install sources
+install(FILES
+main.cc
+problem.hh
+spatialparams.hh
+DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/dumux/test/implicit/2pnc/fuelcell)
+set(CMAKE_BUILD_TYPE Release)
diff --git a/test/porousmediumflow/2pnc/implicit/test_2pnc_fv.cc b/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
similarity index 99%
rename from test/porousmediumflow/2pnc/implicit/test_2pnc_fv.cc
rename to test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
index f091bf5daea67613bead410675287b450461ce62..697868170aa989b9df894cc2024d86c149caef6e 100644
--- a/test/porousmediumflow/2pnc/implicit/test_2pnc_fv.cc
+++ b/test/porousmediumflow/2pnc/implicit/fuelcell/main.cc
@@ -32,8 +32,6 @@
 #include <dune/grid/io/file/vtk.hh>
 #include <dune/istl/io.hh>
 
-#include "fuelcellproblem.hh"
-
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/valgrind.hh>
@@ -51,7 +49,7 @@
 #include <dumux/io/vtkoutputmodule.hh>
 #include <dumux/io/grid/gridmanager.hh>
 
-#include "fuelcellproblem.hh"
+#include "problem.hh"
 
 /*!
  * \brief Provides an interface for customizing error messages associated with
diff --git a/test/porousmediumflow/2pnc/implicit/test_2pnc_fv.input b/test/porousmediumflow/2pnc/implicit/fuelcell/params.input
similarity index 100%
rename from test/porousmediumflow/2pnc/implicit/test_2pnc_fv.input
rename to test/porousmediumflow/2pnc/implicit/fuelcell/params.input
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh b/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
similarity index 99%
rename from test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
rename to test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
index f9358f4ea4f4fd43bb5e5dedc39206e503b4c742..5e3393903ad28f4176565438a594e57595c1eb35 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcell/problem.hh
@@ -37,7 +37,7 @@
 #else
 #include <dumux/material/chemistry/electrochemistry/electrochemistry.hh>
 #endif
-#include "fuelcellspatialparams.hh"
+#include "spatialparams.hh"
 
 namespace Dumux {
 
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh b/test/porousmediumflow/2pnc/implicit/fuelcell/spatialparams.hh
similarity index 100%
rename from test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
rename to test/porousmediumflow/2pnc/implicit/fuelcell/spatialparams.hh
diff --git a/test/references/2pncdiffusioncc-reference.vtu b/test/references/test_2pnc_diffusion_tpfa-reference.vtu
similarity index 100%
rename from test/references/2pncdiffusioncc-reference.vtu
rename to test/references/test_2pnc_diffusion_tpfa-reference.vtu
diff --git a/test/references/fuelcell2pncbox-reference.vtu b/test/references/test_2pnc_fuelcell_box-reference.vtu
similarity index 100%
rename from test/references/fuelcell2pncbox-reference.vtu
rename to test/references/test_2pnc_fuelcell_box-reference.vtu
diff --git a/test/references/fuelcell2pnccc-reference.vtu b/test/references/test_2pnc_fuelcell_tpfa-reference.vtu
similarity index 100%
rename from test/references/fuelcell2pnccc-reference.vtu
rename to test/references/test_2pnc_fuelcell_tpfa-reference.vtu
diff --git a/test/references/fuelcell2pncboxni-reference.vtu b/test/references/test_2pncni_fuelcell_box-reference.vtu
similarity index 100%
rename from test/references/fuelcell2pncboxni-reference.vtu
rename to test/references/test_2pncni_fuelcell_box-reference.vtu