diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
index 3366bf7018bcc4015ab92c0b217080e3271efb03..fff3f841122d7801238c03a8e660b558cc44f850 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/1pspatialparams.hh
@@ -36,17 +36,14 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSpatialParams<TypeTag>>;
+    using GridView = typename FVGridGeometry::GridView;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
index f4d864dc0dcbda86f0408d097c90b6737d5869de..65432f7cbe8b77fe268218bc0d6fb77ca721985d 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/horizontalflow/darcyproblem.hh
@@ -71,7 +71,12 @@ SET_TYPE_PROP(DarcyOnePTwoCTypeTag, EffectiveDiffusivityModel,
 SET_TYPE_PROP(DarcyOnePTwoCTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the spatial paramaters type
-SET_TYPE_PROP(DarcyOnePTwoCTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
index 6fc7a42f49a39447a355d41104ba10f2cae61332..81b6d0e20e04269e8847564e56ac8f1bfecf5228 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_1p2c/verticalflow/darcyproblem.hh
@@ -71,7 +71,12 @@ SET_TYPE_PROP(DarcyOnePTwoCTypeTag, EffectiveDiffusivityModel,
 SET_TYPE_PROP(DarcyOnePTwoCTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the spatial paramaters type
-SET_TYPE_PROP(DarcyOnePTwoCTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
index e7484f51be387920e8d0d95d6f33d5d63e699ad1..c956484ebe75fb9193fff53427d3fddacdeb8171 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/darcyproblem.hh
@@ -66,7 +66,13 @@ SET_TYPE_PROP(DarcyTwoPTwoCTypeTag, Grid, Dune::YaspGrid<2, Dune::TensorProductC
 
 SET_BOOL_PROP(DarcyTwoPTwoCTypeTag, UseMoles, true);
 
-SET_TYPE_PROP(DarcyTwoPTwoCTypeTag, SpatialParams, TwoPTwoCSpatialParams<TypeTag>);
+SET_PROP(DarcyTwoPTwoCTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TwoPTwoCSpatialParams<FVGridGeometry, Scalar>;
+};
+
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
index dcc5f7d118f3410cd2506fc1ecd31b287504754c..bab494de6995731559f3ea8b37bcca8cadf99d39 100644
--- a/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p2c_2p2c/spatialparams.hh
@@ -39,20 +39,15 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TwoPTwoCSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         TwoPTwoCSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPTwoCSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
index 9708c05b7e26c71a5933c113fb7d498e92614e0f..59517c5ea53ea30f91836ffa08a91a699c7d724e 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/1pspatialparams.hh
@@ -36,17 +36,14 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSpatialParams<TypeTag>>;
+    using GridView = typename FVGridGeometry::GridView;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
index 76e364de605ff7e8915dbd9d63a3d190e5947cee..0ca036a9acae41a815963f547485a31e4da228b4 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/horizontalflow/darcyproblem.hh
@@ -58,7 +58,12 @@ SET_PROP(DarcyOnePTypeTag, FluidSystem)
 // Set the grid type
 SET_TYPE_PROP(DarcyOnePTypeTag, Grid, Dune::YaspGrid<2>);
 
-SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
index 266e64dccc756a103392475575728d1a954f51fe..73892b33aa31ee710f5664936e4a3aaadfa9e545 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_1p/verticalflow/darcyproblem.hh
@@ -58,7 +58,12 @@ SET_PROP(DarcyOnePTypeTag, FluidSystem)
 // Set the grid type
 SET_TYPE_PROP(DarcyOnePTypeTag, Grid, Dune::YaspGrid<2>);
 
-SET_TYPE_PROP(DarcyOnePTypeTag, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(DarcyOnePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 template <class TypeTag>
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
index 234c34f6b136c0eeebe1333da29b0c34b056d024..362367b8518fcda7ce9105cccae48c978e89baa9 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/darcyproblem.hh
@@ -54,7 +54,12 @@ SET_TYPE_PROP(DarcyTwoPTypeTag, Grid, Dune::YaspGrid<2>);
 
 SET_BOOL_PROP(DarcyTwoPTypeTag, UseMoles, false);
 
-SET_TYPE_PROP(DarcyTwoPTypeTag, SpatialParams, ConservationSpatialParams<TypeTag>);
+SET_PROP(DarcyTwoPTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ConservationSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //! Set the default formulation to pw-Sn: This can be over written in the problem.
 SET_PROP(DarcyTwoPTypeTag, Formulation)
diff --git a/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh b/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
index 3590c56cd4da3aed7088beba8d798411da0abb3b..22db4d8ff9439defc7e40698d3f7df0fcfeb2ea9 100644
--- a/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
+++ b/test/multidomain/boundary/stokesdarcy/1p_2p/spatialparams.hh
@@ -39,20 +39,17 @@ namespace Dumux
  * \brief The spatial parameters class for the test problem using the
  *        1p cc model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ConservationSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         ConservationSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         ConservationSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ConservationSpatialParams<TypeTag>>;
+    using ThisType = ConservationSpatialParams<FVGridGeometry, Scalar>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThisType>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
     using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
diff --git a/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh b/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
index 6098c8ea0acde89c40eb65de12d56c27b18ff2df..3d3998aa82ff9384acb481101221ca66900c5967 100644
--- a/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/bulkproblem.hh
@@ -50,7 +50,12 @@ SET_TYPE_PROP(OnePBulk, Grid, Dune::ALUGrid<3, 3, Dune::simplex, Dune::nonconfor
 // Set the problem type
 SET_TYPE_PROP(OnePBulk, Problem, OnePBulkProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePBulk, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePBulk, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePBulk, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh b/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
index 0495cc85e401b30794976fe6bc43e314cf93edfd..f9fcfcabf01bae3607d039c313b31b45fde4d423 100644
--- a/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/edgeproblem.hh
@@ -52,7 +52,12 @@ SET_TYPE_PROP(OnePEdge, Grid, Dune::FoamGrid<1, 3>);
 // Set the problem type
 SET_TYPE_PROP(OnePEdge, Problem, OnePEdgeProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePEdge, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePEdge, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePEdge, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh b/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
index d6302e1045b8efaa8a9e1c83f78b41326d25eb4f..a72c5af1f927cc0e74700c3a0504510eacf2346f 100644
--- a/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/facetproblem.hh
@@ -51,7 +51,12 @@ SET_TYPE_PROP(OnePFacet, Grid, Dune::FoamGrid<2, 3>);
 // Set the problem type
 SET_TYPE_PROP(OnePFacet, Problem, OnePFacetProblem<TypeTag>);
 // set the spatial params
-SET_TYPE_PROP(OnePFacet, SpatialParams, OnePSpatialParams<TypeTag>);
+SET_PROP(OnePFacet, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePFacet, FluidSystem)
diff --git a/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh b/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
index 48b577e9f4ab3a3ec8a861a4468b74348dcae004..2a57fa02c76ead284910f349289ed9a2361d9fe4 100644
--- a/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
+++ b/test/multidomain/facet/1p_1p/threedomain/spatialparams.hh
@@ -32,19 +32,15 @@ namespace Dumux {
  * \ingroup OnePTests
  * \brief The spatial params the single-phase facet coupling test
  */
-template<class TypeTag>
-class OnePSpatialParams : public FVSpatialParamsOneP< typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                                                      typename GET_PROP_TYPE(TypeTag, Scalar),
-                                                      OnePSpatialParams<TypeTag> >
+template<class FVGridGeometry, class Scalar>
+class OnePSpatialParams : public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                                     OnePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
-    using ThisType = OnePSpatialParams<TypeTag>;
+    using ThisType = OnePSpatialParams<FVGridGeometry, Scalar>;
     using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, ThisType>;
 
 public:
diff --git a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
index 3ba1bdd20804e3683859b522075c060fa888abbe..ad5e23883358f66dbe81fe8e0320113ddc8c727e 100644
--- a/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconductionproblem.hh
@@ -67,7 +67,12 @@ SET_TYPE_PROP(OnePNIConductionTypeTag, FluidSystem,
             FluidSystems::OnePLiquid<typename GET_PROP_TYPE(TypeTag, Scalar),
                                                            Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 // Set the spatial parameters
-SET_TYPE_PROP(OnePNIConductionTypeTag, SpatialParams, OnePNISpatialParams<TypeTag>);
+SET_PROP(OnePNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 
diff --git a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
index 0ca5a8cc0ce4962fb7156bb5dac96c456841c590..2bc5d51e787cdc5573bfe9addde9eb81c33bde65 100644
--- a/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1pniconvectionproblem.hh
@@ -66,7 +66,12 @@ SET_TYPE_PROP(OnePNIConvectionTypeTag, FluidSystem,
                                                            Components::H2O<typename GET_PROP_TYPE(TypeTag, Scalar)> >);
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePNIConvectionTypeTag, SpatialParams, OnePNISpatialParams<TypeTag>);
+SET_PROP(OnePNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 
diff --git a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
index 6d55649aeba20ed31ed83585054b78de506c65f9..88e0c4696aa9d7cdfe4d825a0b17e579ef0ab557 100644
--- a/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/1pnispatialparams.hh
@@ -33,16 +33,14 @@ namespace Dumux {
  * \ingroup OnePTests
  * \brief Definition of the spatial parameters for the 1pni problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePNISpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePNISpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePNISpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/1p/implicit/compressible/problem.hh b/test/porousmediumflow/1p/implicit/compressible/problem.hh
index b70307908ea8e3336782a957b8988f81888f8784..5bcade3c59f01f1b69fbff9f7988014ef968cec4 100644
--- a/test/porousmediumflow/1p/implicit/compressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/problem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(OnePCompressible, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(OnePCompressible, Problem, OnePTestProblem<TypeTag>);
 
 // set the spatial params
-SET_TYPE_PROP(OnePCompressible, SpatialParams, OnePTestSpatialParams<TypeTag>);
+SET_PROP(OnePCompressible, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(OnePCompressible, FluidSystem)
diff --git a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
index 812aad60428cac5c97fa888a458efed2b55f3de3..dfc19c4e64381458194f7b05b998833da38e79a7 100644
--- a/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/compressible/spatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        compressible 1p model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/fractureproblem.hh b/test/porousmediumflow/1p/implicit/fractureproblem.hh
index 96b9fafcdf9d37164c77a64a2d17df47e659c995..7b2a7280df180958319306fbbed3eed0431cbade 100644
--- a/test/porousmediumflow/1p/implicit/fractureproblem.hh
+++ b/test/porousmediumflow/1p/implicit/fractureproblem.hh
@@ -71,7 +71,12 @@ SET_PROP(FractureTypeTag, FluidSystem)
     using type = FluidSystems::OnePLiquid<Scalar, Components::SimpleH2O<Scalar> >;
 };
 // Set the spatial parameters
-SET_TYPE_PROP(FractureTypeTag, SpatialParams, FractureSpatialParams<TypeTag>);
+SET_PROP(FractureTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FractureSpatialParams<FVGridGeometry, Scalar>;
+};
 
 } // end namespace Properties
 
diff --git a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
index 516d74350395f448443b98c02722992d64e6ba97..ea81dea7bfff9d2ef5c64d795ee8103b6db7408d 100644
--- a/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/fracturespatialparams.hh
@@ -35,16 +35,14 @@ namespace Dumux {
  * \brief The spatial parameters for the LensProblem which uses the
  *        two-phase fully implicit model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FractureSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             FractureSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             FractureSpatialParams<FVGridGeometry, Scalar>>
 {
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           FractureSpatialParams<FVGridGeometry, Scalar>>;
 
     using Element = typename GridView::template Codim<0>::Entity;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/incompressible/problem.hh b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
index 0d7ae66f7706c91bb2b504a46302f512a68768c0..71c6c886494699192a6be77c467d60c287071448 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/problem.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/problem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(OnePIncompressible, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(OnePIncompressible, Problem, OnePTestProblem<TypeTag>);
 
 // set the spatial params
-SET_TYPE_PROP(OnePIncompressible, SpatialParams, OnePTestSpatialParams<TypeTag>);
+SET_PROP(OnePIncompressible, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // use the incompressible local residual (provides analytic jacobian)
 SET_TYPE_PROP(OnePIncompressible, LocalResidual, OnePIncompressibleLocalResidual<TypeTag>);
diff --git a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
index 749052ac0f2ef97308e47b8993975abfe3cb84ed..2e36b043f1f586e52e867c300bbee447bf32d87f 100644
--- a/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/incompressible/spatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        incompressible 1p model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
index e77b07c1fc20afd1757d854b08f18d405f768428..824dde61a204f29ffeea4910a9b8a112b7fa056f 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityproblem.hh
@@ -62,7 +62,12 @@ SET_TYPE_PROP(OnePSingularityTypeTag, Grid,
 SET_TYPE_PROP(OnePSingularityTypeTag, Problem, OnePSingularityProblem<TypeTag> );
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePSingularityTypeTag, SpatialParams, OnePSingularitySpatialParams<TypeTag> );
+SET_PROP(OnePSingularityTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePSingularitySpatialParams<FVGridGeometry, Scalar>;
+};
 }
 
 /*!
diff --git a/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh b/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
index ed20e2d3b4634b09ab47627a6cc82c87db8e43c6..04f5eb0133510775b0a6f51e6ba49c52aa3132b5 100644
--- a/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/pointsources/1psingularityspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief The spatial parameters class for the test problem using the
  *        1p model with point sources
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePSingularitySpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePSingularitySpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePSingularitySpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePSingularitySpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePSingularitySpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 public:
diff --git a/test/porousmediumflow/1p/implicit/tubesproblem.hh b/test/porousmediumflow/1p/implicit/tubesproblem.hh
index b3832cdf294488f3728c76016144f603d2ef6025..905306eeebf89899f5ded4bf6e8ed59a33b135d7 100644
--- a/test/porousmediumflow/1p/implicit/tubesproblem.hh
+++ b/test/porousmediumflow/1p/implicit/tubesproblem.hh
@@ -93,7 +93,12 @@ public:
 SET_TYPE_PROP(TubesTestTypeTag, Problem, TubesTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TubesTestTypeTag, SpatialParams, TubesTestSpatialParams<TypeTag>);
+SET_PROP(TubesTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TubesTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // the fluid system
 SET_PROP(TubesTestTypeTag, FluidSystem)
diff --git a/test/porousmediumflow/1p/implicit/tubesspatialparams.hh b/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
index 4d88979cfc847d416246a971c88882b40b8f18e1..b6d3ce7a8b846dd211858eb3e561fc201d7c6954 100644
--- a/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
+++ b/test/porousmediumflow/1p/implicit/tubesspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief A test problem for the 1p model. A pipe system with circular cross-section
  *        and a branching point embedded in a three-dimensional world
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TubesTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TubesTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TubesTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using GridView = typename FVGridGeometry::GridView;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TubesTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TubesTestSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
index e720bbccf4bf8a52ed035e6c95972b991b6af810..11fa5795c752a9290f8f6629b595cf13b7fa0d02 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconductionproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCNIConductionTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCNIConductionTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCNIConductionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
index 52b75eaf85a70c71947c2b5afdc41ec0b4a9df86..5e15469124fd95d840d219b0f2a00e130a3722ec 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2cniconvectionproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCNIConvectionTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCNIConvectionTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCNIConvectionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
index 9f76cef50cc93e510dff0ce669a286e43203a9b5..585e1823f95eba5f8f6ac10781df1c382f22b9ad 100644
--- a/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/1p2ctestproblem.hh
@@ -74,7 +74,12 @@ SET_PROP(OnePTwoCTestTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(OnePTwoCTestTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(OnePTwoCTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(OnePTwoCTestTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh b/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
index 1106a1683ab4e58e86922c3e574a638cd530110b..d4e0ae63f057ef5e514e789790c27997c3120a70 100644
--- a/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
+++ b/test/porousmediumflow/1pnc/implicit/1pnctestspatialparams.hh
@@ -35,19 +35,17 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the 1pnc
  *        test problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePNCTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePNCTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePNCTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePNCTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePNCTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh b/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
index 754486f0a473d5bf8456b703db8807f441498c45..0ca5541c70137ec3315426ef3e02655b4e7928c4 100644
--- a/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
+++ b/test/porousmediumflow/1pnc/implicit/saltwaterintrusionproblem.hh
@@ -52,7 +52,12 @@ SET_TYPE_PROP(SaltWaterIntrusionTestTypeTag,
               FluidSystems::Brine< typename GET_PROP_TYPE(TypeTag, Scalar) >);
 
 // Set the spatial parameters
-SET_TYPE_PROP(SaltWaterIntrusionTestTypeTag, SpatialParams, OnePNCTestSpatialParams<TypeTag>);
+SET_PROP(SaltWaterIntrusionTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePNCTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Use mass fractions to set salinity conveniently
 SET_BOOL_PROP(SaltWaterIntrusionTestTypeTag, UseMoles, false);
diff --git a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
index 6f483698ec1b811ba9619c8a3932e4e205b8b6df..58cb2662d6c5e5c628c5af5b5814af8b9f273cad 100644
--- a/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
+++ b/test/porousmediumflow/1pncmin/implicit/thermochemproblem.hh
@@ -77,7 +77,12 @@ SET_PROP(ThermoChemTypeTag, SolidSystem)
 // SET_BOOL_PROP(ThermoChemTypeTag, VtkAddVelocity, false);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThermoChemTypeTag, SpatialParams, ThermoChemSpatialParams<TypeTag>);
+SET_PROP(ThermoChemTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThermoChemSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(ThermoChemTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh b/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
index 78dcf7ef39952082485ae7009197688469945bbc..956a31a745660beb2e3252ce1d20ae357d953202 100644
--- a/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
+++ b/test/porousmediumflow/1pncmin/implicit/thermochemspatialparams.hh
@@ -39,22 +39,17 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the FuelCell
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ThermoChemSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             ThermoChemSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             ThermoChemSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, ThermoChemSpatialParams<TypeTag>>;
-
-    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
-    using ModelTraits = typename GET_PROP_TYPE(TypeTag, ModelTraits);
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           ThermoChemSpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/2p/implicit/fracture/problem.hh b/test/porousmediumflow/2p/implicit/fracture/problem.hh
index a52fefa5185b12e37c404b22d5c7fd5cb1fd3d57..111078218080330abf1c2ae31b3db53b9a512a38 100644
--- a/test/porousmediumflow/2p/implicit/fracture/problem.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/problem.hh
@@ -72,7 +72,12 @@ SET_PROP(FractureTypeTag, FluidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(FractureTypeTag, SpatialParams, FractureSpatialParams<TypeTag>);
+SET_PROP(FractureTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FractureSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Use global caching
 SET_BOOL_PROP(FractureTypeTag, EnableFVGridGeometryCache, true);
diff --git a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
index 65e5beb1b48bbb5981af5b140615c8ac93c750ec..d242dea180a19caea62300d25f96b42058bc1732 100644
--- a/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
+++ b/test/porousmediumflow/2p/implicit/fracture/spatialparams.hh
@@ -39,19 +39,17 @@ namespace Dumux {
  * \brief The spatial parameters for the LensProblem which uses the
  *        two-phase fully implicit model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FractureSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         FractureSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         FractureSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, FractureSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       FractureSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename Element::Geometry::GlobalCoordinate;
 
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
index a052c282c54f3d037e9d9d5706f4aff7f49acb33..bb2047fe2c88809e68c0fd089aa2b7fe638a0b11 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionproblem.hh
@@ -44,7 +44,7 @@ template <class TypeTag>
 class InjectionProblem;
 
 namespace Properties {
-NEW_TYPE_TAG(InjectionProblemTypeTag, INHERITS_FROM(TwoPOneCNI, InjectionProblemSpatialParams));
+NEW_TYPE_TAG(InjectionProblemTypeTag, INHERITS_FROM(TwoPOneCNI));
 NEW_TYPE_TAG(TwoPOneCNIBoxTypeTag, INHERITS_FROM(BoxModel, InjectionProblemTypeTag));
 NEW_TYPE_TAG(TwoPOneCNICCTpfaTypeTag, INHERITS_FROM(CCTpfaModel, InjectionProblemTypeTag));
 
@@ -64,6 +64,13 @@ public:
     using type = Dumux::FluidSystems::TwoPOneC<Scalar, H2OType >;
 };
 
+// Set the spatial parameters
+SET_PROP(InjectionProblemTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = InjectionProblemSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //Define whether spurious cold-water flow into the steam is blocked
 SET_BOOL_PROP(InjectionProblemTypeTag, UseBlockingOfSpuriousFlow, true);
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
index b2c68e217653035ff8a809e20553a244ce2cd55f..44e16f6dff803114e1c9c429d3579f07238d3bf7 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
@@ -31,37 +31,21 @@
 #include <dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh>
 
 namespace Dumux {
-
-//forward declaration
-template<class TypeTag>
-class InjectionProblemSpatialParams;
-
-namespace Properties
-{
-// The spatial parameters TypeTag
-NEW_TYPE_TAG(InjectionProblemSpatialParams);
-
-// Set the spatial parameters
-SET_TYPE_PROP(InjectionProblemSpatialParams, SpatialParams, Dumux::InjectionProblemSpatialParams<TypeTag>);
-}
-
 /*!
  * \ingroup TwoPOneCTests
  * \brief Definition of the spatial parameters for various steam injection problems
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class InjectionProblemSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         InjectionProblemSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         InjectionProblemSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InjectionProblemSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       InjectionProblemSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
index 11134d2bc72dcf64ff3824ff2ae16bdbb0f87786..77e7dc1d35e643b0af26c11bb09f92cc41c2cf8f 100644
--- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionproblem.hh
@@ -60,7 +60,12 @@ SET_TYPE_PROP(TwoPNCDiffusionTypeTag,
               FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TwoPNCDiffusionTypeTag, SpatialParams, TwoPNCDiffusionSpatialParams<TypeTag>);
+SET_PROP(TwoPNCDiffusionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TwoPNCDiffusionTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
index 10381263a779ed485fcf795a71d1a31e31c8b22e..1da7c6f8106aa1688873731f30e52a78ff2b6f95 100644
--- a/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
+++ b/test/porousmediumflow/2pnc/implicit/2pncdiffusionspatialparams.hh
@@ -39,16 +39,14 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the TwoPNCDiffusion
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TwoPNCDiffusionSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         TwoPNCDiffusionSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, TwoPNCDiffusionSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       TwoPNCDiffusionSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
index 9d729285875b5fdfd7371eca9c93a66610f1e632..8f492fbf624fa84f54205428fc5b7f1ae9073e72 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcellproblem.hh
@@ -65,7 +65,12 @@ SET_TYPE_PROP(FuelCellTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(FuelCellTypeTag, Problem, FuelCellProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(FuelCellTypeTag, SpatialParams, FuelCellSpatialParams<TypeTag>);
+SET_PROP(FuelCellTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = FuelCellSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Set the primary variable combination for the 2pnc model
 SET_PROP(FuelCellTypeTag, Formulation)
diff --git a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
index 78f4079f1c5be4df41982df642285de565957333..1975f6453a39dbca9e55c3d63e6252df862b6e3e 100644
--- a/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
+++ b/test/porousmediumflow/2pnc/implicit/fuelcellspatialparams.hh
@@ -39,16 +39,14 @@ namespace Dumux {
  * \brief Definition of the spatial parameters for the FuelCell
  *        problem which uses the isothermal 2p2c box model
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class FuelCellSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         FuelCellSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         FuelCellSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, FuelCellSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       FuelCellSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
 
diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
index 5ad6c884e4b283640ad406db340fafc42543d7d6..337b091a03a9adfd55e5d62ca80be18d9c2d760a 100644
--- a/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
+++ b/test/porousmediumflow/2pncmin/implicit/dissolutionproblem.hh
@@ -76,7 +76,12 @@ SET_PROP(DissolutionTypeTag, SolidSystem)
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(DissolutionTypeTag, SpatialParams, DissolutionSpatialparams<TypeTag>);
+SET_PROP(DissolutionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = DissolutionSpatialParams<FVGridGeometry, Scalar>;
+};
 
 //Set properties here to override the default property settings
 SET_INT_PROP(DissolutionTypeTag, ReplaceCompEqIdx, 1); //!< Replace gas balance by total mass balance
diff --git a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
index 8098722211fd665eb96d4fa52016e673c3867d97..af2360afe6752476974d53a8bf648288846ee542 100644
--- a/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
+++ b/test/porousmediumflow/2pncmin/implicit/dissolutionspatialparams.hh
@@ -39,21 +39,18 @@ namespace Dumux {
  * \brief Spatial parameters for the dissolution problem
  * where water is injected in a for flushing precipitated salt clogging a gas reservoir.
  */
-template<class TypeTag>
-class DissolutionSpatialparams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         DissolutionSpatialparams<TypeTag>>
+template<class FVGridGeometry, class Scalar>
+class DissolutionSpatialParams
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         DissolutionSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
 
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, DissolutionSpatialparams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       DissolutionSpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedBrooksCorey<Scalar>;
 
@@ -66,7 +63,7 @@ public:
     using MaterialLaw = EffToAbsLaw<EffectiveLaw>;
     using MaterialLawParams = typename MaterialLaw::Params;
 
-    DissolutionSpatialparams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
+    DissolutionSpatialParams(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
     : ParentType(fvGridGeometry)
     {
         solubilityLimit_       = getParam<Scalar>("SpatialParams.SolubilityLimit", 0.26);
diff --git a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
index 49fc43ed7979d763d28f89a966301fece2b81596..ef01ff6782a89fd861bbec5c3e9b7d8655e2eb28 100644
--- a/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconductionproblem.hh
@@ -68,7 +68,12 @@ SET_TYPE_PROP(ThreePNIConductionTypeTag,
               FluidSystems::H2OAirMesitylene<typename GET_PROP_TYPE(TypeTag, Scalar)>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThreePNIConductionTypeTag, SpatialParams, ThreePNISpatialParams<TypeTag>);
+SET_PROP(ThreePNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
+};
 }// end namespace Properties
 
 
diff --git a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
index 8e3f52422bea2d0b1a1dcd687dee1fa42667a146..c2203d1487c21b52273e20f62380a4133ebcbcd3 100644
--- a/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
+++ b/test/porousmediumflow/3p/implicit/3pniconvectionproblem.hh
@@ -68,7 +68,12 @@ SET_TYPE_PROP(ThreePNIConvectionTypeTag,
               FluidSystems::H2OAirMesitylene<typename GET_PROP_TYPE(TypeTag, Scalar)>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(ThreePNIConvectionTypeTag, SpatialParams, ThreePNISpatialParams<TypeTag>);
+SET_PROP(ThreePNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = ThreePNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
index c85e9f3f325c1d37bc7cec62dc89cc7098871b5a..86253c8529e42b68f42337667b6367371db65fc1 100644
--- a/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
+++ b/test/porousmediumflow/3p/implicit/3pnispatialparams.hh
@@ -36,20 +36,17 @@ namespace Dumux {
  * \ingroup ThreePTests
  * \brief Definition of the spatial parameters for the 3pni problems.
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class ThreePNISpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         ThreePNISpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         ThreePNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, ThreePNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       ThreePNISpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>;
 
diff --git a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
index 132641ca79b5fc89ff42d34902f6818e444268b7..777889b6e2b96f2fbb19c98fcbd148b47c37295f 100644
--- a/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
+++ b/test/porousmediumflow/3p/implicit/infiltration3pproblem.hh
@@ -79,11 +79,12 @@ public:
 };
 
 // Set the spatial parameters
-SET_TYPE_PROP(InfiltrationThreePTypeTag, SpatialParams, InfiltrationThreePSpatialParams<TypeTag>);
-
-// SET_TYPE_PROP(InfiltrationThreePTypeTag,
-//               FluidSystem,
-//               FluidSystems::ThreePImmiscible<typename GET_PROP_TYPE(TypeTag, Scalar)>);
+SET_PROP(InfiltrationThreePTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>;
+};
 
 }// end namespace Properties
 
diff --git a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
index db78723e17e6725fbb8c9a98d260c767f53cc226..01ce61ece6f27b5d1fd45bf476b2f8be1c0e6511 100644
--- a/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
+++ b/test/porousmediumflow/3p/implicit/infiltration3pspatialparams.hh
@@ -40,19 +40,17 @@ namespace Dumux {
  *
  * \brief Definition of the spatial parameters for the infiltration problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class InfiltrationThreePSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         InfiltrationThreePSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, InfiltrationThreePSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       InfiltrationThreePSpatialParams<FVGridGeometry, Scalar>>;
 
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
 
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
index a5733fecd71ebd4e422a4234770fe6d216f4f013..f67c3f5ef223a85a40f51ad63ab04905c750dcc4 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
@@ -58,7 +58,12 @@ SET_TYPE_PROP(SagdTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(SagdTypeTag, Problem, Dumux::SagdProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(SagdTypeTag, SpatialParams, SagdSpatialParams<TypeTag>);
+SET_PROP(SagdTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = SagdSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Set the fluid system
 SET_TYPE_PROP(SagdTypeTag,
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
index 7a95e68047614077c8e37509c587801e6ce50072..8e43b62f891f75057e420b422e2b7f77a1ae9ae6 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
@@ -41,14 +41,11 @@ namespace Dumux {
  *
  * \brief Definition of the spatial parameters for the SAGD problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class SagdSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         SagdSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         SagdSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
@@ -58,7 +55,8 @@ class SagdSpatialParams
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
 
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, SagdSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       SagdSpatialParams<FVGridGeometry, Scalar>>;
 
     using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>;
 
diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
index 993db884bd318298afa9d32f9659aa5257f5d427..9acdacc83a797ea7d1760db4d91e33ce0e80efa7 100644
--- a/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsanalyticalproblem.hh
@@ -70,7 +70,12 @@ SET_TYPE_PROP(RichardsAnalyticalTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(RichardsAnalyticalTypeTag, Problem, RichardsAnalyticalProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsAnalyticalTypeTag, SpatialParams, RichardsAnalyticalSpatialParams<TypeTag>);
+SET_PROP(RichardsAnalyticalTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
index cca140422be6b8b77473cbbde483363087794294..e3da4a35f4dbae1d30165348b5550b89ba02e03f 100644
--- a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
@@ -40,16 +40,14 @@ namespace Dumux {
  * \ingroup ImplicitTestProblems
  * \brief The spatial parameters for the RichardsAnalyticalProblem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class RichardsAnalyticalSpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         RichardsAnalyticalSpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsAnalyticalSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       RichardsAnalyticalSpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
     using Element = typename GridView::template Codim<0>::Entity;
diff --git a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
index 2ebfbc3db1fb59a5786af8fc0c59e8c737833700..ebc6e7796ddfeb82504e7a5f3c2b3b75350580ab 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
@@ -64,7 +64,12 @@ SET_TYPE_PROP(RichardsNIConductionTypeTag, Problem,
 SET_TYPE_PROP(RichardsNIConductionTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIConductionTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIConductionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
index aeafdd276f2f151568b120ced61629d6709988f5..72cf700377717eea95ed0ba46c5e08188e3cf4ac 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
@@ -64,7 +64,12 @@ SET_TYPE_PROP(RichardsNIConvectionTypeTag, Problem, RichardsNIConvectionProblem<
 SET_TYPE_PROP(RichardsNIConvectionTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIConvectionTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIConvectionTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 } // end namespace Properties
 
 /*!
diff --git a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
index 0663c39230a7a8456fdaa0d9a93a75189642acc6..ef244ab2474fd28c38f1fb6f36b7b913125d00b3 100644
--- a/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnievaporationproblem.hh
@@ -63,7 +63,12 @@ SET_TYPE_PROP(RichardsNIEvaporationTypeTag, Problem,
 SET_TYPE_PROP(RichardsNIEvaporationTypeTag, FluidSystem, FluidSystems::H2ON2<typename GET_PROP_TYPE(TypeTag, Scalar), FluidSystems::H2ON2DefaultPolicy</*fastButSimplifiedRelations=*/true>>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(RichardsNIEvaporationTypeTag, SpatialParams, RichardsNISpatialParams<TypeTag>);
+SET_PROP(RichardsNIEvaporationTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = RichardsNISpatialParams<FVGridGeometry, Scalar>;
+};
 
 SET_BOOL_PROP(RichardsNIEvaporationTypeTag, EnableWaterDiffusionInAir, true);
 } // end namespace Properties
diff --git a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
index ae497ac99b067840e6a1dc1079ce48babf27bfa8..dea3c9332e3e4b993f95b6a4f19756bf3b107ced 100644
--- a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
@@ -32,19 +32,17 @@
 
 namespace Dumux {
 
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class RichardsNISpatialParams
-: public FVSpatialParams<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                         typename GET_PROP_TYPE(TypeTag, Scalar),
-                         RichardsNISpatialParams<TypeTag>>
+: public FVSpatialParams<FVGridGeometry, Scalar,
+                         RichardsNISpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParams<FVGridGeometry, Scalar, RichardsNISpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParams<FVGridGeometry, Scalar,
+                                       RichardsNISpatialParams<FVGridGeometry, Scalar>>;
 
     enum { dimWorld=GridView::dimensionworld };
 
diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
index 82b465f36802e061c7ed1f909ae7155f24b78493..4cae1d439ba709e112d3927c52cdd970149c1fcd 100644
--- a/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
+++ b/test/porousmediumflow/tracer/1ptracer/1ptestproblem.hh
@@ -53,7 +53,14 @@ SET_TYPE_PROP(IncompressibleTestTypeTag, Grid, Dune::YaspGrid<2>);
 
 // Set the problem type
 SET_TYPE_PROP(IncompressibleTestTypeTag, Problem, OnePTestProblem<TypeTag>);
-SET_TYPE_PROP(IncompressibleTestTypeTag, SpatialParams, OnePTestSpatialParams<TypeTag>);
+
+SET_PROP(IncompressibleTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = OnePTestSpatialParams<FVGridGeometry, Scalar>;
+};
+
 SET_TYPE_PROP(IncompressibleTestTypeTag, LocalResidual, OnePIncompressibleLocalResidual<TypeTag>);
 
 // the fluid system
diff --git a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
index 8ff623ee2f8e2f8b277a1b47f4dd58e61a71ee33..4dd4e35730e3de5a36929c855598e089f59f254d 100644
--- a/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
+++ b/test/porousmediumflow/tracer/1ptracer/1ptestspatialparams.hh
@@ -34,19 +34,17 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief The spatial params the incompressible test
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class OnePTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             OnePTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             OnePTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, OnePTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           OnePTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static constexpr int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename SubControlVolume::GlobalPosition;
diff --git a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
index 9e9a4c4027390e7a13cab25687a03ec13a8b75b2..176631562b3483086b599423e261d9b24ef27640 100644
--- a/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
+++ b/test/porousmediumflow/tracer/1ptracer/tracertestproblem.hh
@@ -59,7 +59,12 @@ SET_TYPE_PROP(TracerTestTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(TracerTestTypeTag, Problem, TracerTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TracerTestTypeTag, SpatialParams, TracerTestSpatialParams<TypeTag>);
+SET_PROP(TracerTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TracerTestTypeTag, UseMoles, false);
diff --git a/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh b/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
index ab7e36f45d36d7691b77e2f54ee5bdc7406ce50e..17eb067c9ffb61cfea3f1188b7b3fc33394dfa9e 100644
--- a/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
+++ b/test/porousmediumflow/tracer/1ptracer/tracertestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief Definition of the spatial parameters for the tracer problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TracerTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TracerTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TracerTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TracerTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TracerTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
index 837fa04d10432ae39d4ee9a5b3f8fe0a84e8acfd..8ae67572eec75d2071d7aef3776ca87e80c99570 100644
--- a/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
+++ b/test/porousmediumflow/tracer/constvel/tracertestproblem.hh
@@ -67,7 +67,12 @@ SET_TYPE_PROP(TracerTest, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(TracerTest, Problem, TracerTest<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(TracerTest, SpatialParams, TracerTestSpatialParams<TypeTag>);
+SET_PROP(TracerTest, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = TracerTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(TracerTest, UseMoles, USEMOLES);
diff --git a/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh b/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
index 486f031c13b58e60f7944d3ea7a6e9e63a39cea1..395823bd9260bfe6ad599958d2dc06fb2f89bac2 100644
--- a/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
+++ b/test/porousmediumflow/tracer/constvel/tracertestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTests
  * \brief Definition of the spatial parameters for the tracer problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class TracerTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             TracerTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             TracerTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, TracerTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           TracerTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;
diff --git a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
index 432182152652e3e159330f0060fefff4f7cfa07a..ba5a1b2de24dbe76d76fa35208cfde2d64f48f93 100644
--- a/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
+++ b/test/porousmediumflow/tracer/multicomp/maxwellstefantestproblem.hh
@@ -56,7 +56,12 @@ SET_TYPE_PROP(MaxwellStefanTestTypeTag, Grid, Dune::YaspGrid<2>);
 SET_TYPE_PROP(MaxwellStefanTestTypeTag, Problem, MaxwellStefanTestProblem<TypeTag>);
 
 // Set the spatial parameters
-SET_TYPE_PROP(MaxwellStefanTestTypeTag, SpatialParams, MaxwellStefanTestSpatialParams<TypeTag>);
+SET_PROP(MaxwellStefanTestTypeTag, SpatialParams)
+{
+    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using type = MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>;
+};
 
 // Define whether mole(true) or mass (false) fractions are used
 SET_BOOL_PROP(MaxwellStefanTestTypeTag, UseMoles, true);
diff --git a/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh b/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
index 9d329e70780001649a1223b68be866188f04c4cb..ec3c044c0e1b0c8d8dbee51e61c840cb29817f18 100644
--- a/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
+++ b/test/porousmediumflow/tracer/multicomp/maxwellstefantestspatialparams.hh
@@ -33,20 +33,18 @@ namespace Dumux {
  * \ingroup TracerTest
  * \brief Definition of the spatial parameters for the MaxwellStefan problem
  */
-template<class TypeTag>
+template<class FVGridGeometry, class Scalar>
 class MaxwellStefanTestSpatialParams
-: public FVSpatialParamsOneP<typename GET_PROP_TYPE(TypeTag, FVGridGeometry),
-                             typename GET_PROP_TYPE(TypeTag, Scalar),
-                             MaxwellStefanTestSpatialParams<TypeTag>>
+: public FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                             MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>>
 {
-    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
-    using FVGridGeometry = typename GET_PROP_TYPE(TypeTag, FVGridGeometry);
     using GridView = typename FVGridGeometry::GridView;
     using FVElementGeometry = typename FVGridGeometry::LocalView;
     using SubControlVolume = typename FVElementGeometry::SubControlVolume;
     using SubControlVolumeFace = typename FVElementGeometry::SubControlVolumeFace;
     using Element = typename GridView::template Codim<0>::Entity;
-    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar, MaxwellStefanTestSpatialParams<TypeTag>>;
+    using ParentType = FVSpatialParamsOneP<FVGridGeometry, Scalar,
+                                           MaxwellStefanTestSpatialParams<FVGridGeometry, Scalar>>;
 
     static const int dimWorld = GridView::dimensionworld;
     using GlobalPosition = typename Dune::FieldVector<Scalar, dimWorld>;