diff --git a/dumux/common/boundingboxtree.hh b/dumux/common/boundingboxtree.hh
index fe9ee19ad692f8d16ce1fd98ad0dec5360ba1074..1b6f24f37d9030720e76f5d4e4aadb379d969ef4 100644
--- a/dumux/common/boundingboxtree.hh
+++ b/dumux/common/boundingboxtree.hh
@@ -48,7 +48,7 @@ class BoundingBoxTreeHelper<3>
 {
     // An epsilon for floating point operations
     static constexpr double eps_ = 1.0e-7;
-    typedef Dune::FieldVector<double, 3> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<double, 3>;
 
 public:
     //! Check whether a point is inside a given three-dimensional geometry
@@ -449,7 +449,7 @@ class BoundingBoxTreeHelper<2>
 {
     // An epsilon for floating point operations
     static constexpr double eps_ = 1.0e-7;
-    typedef Dune::FieldVector<double, 2> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<double, 2>;
 
 public:
     // Check whether a point is inside a given geometry
@@ -663,7 +663,7 @@ class BoundingBoxTreeHelper<1>
 {
     // An epsilon for floating point operations
     static constexpr double eps_ = 1.0e-7;
-    typedef Dune::FieldVector<double, 1> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<double, 1>;
 
 public:
     // Check whether a point is inside a given geometry
@@ -832,8 +832,8 @@ template <class GridView>
 class IndexToElementMap
   : public std::vector<typename GridView::Traits::Grid::template Codim<0>::EntitySeed>
 {
-    typedef typename GridView::Traits::Grid Grid;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Grid = typename GridView::Traits::Grid;
+    using Element = typename GridView::template Codim<0>::Entity;
 public:
     IndexToElementMap(const GridView& gridView)
       : grid_(gridView.grid()) {}
diff --git a/dumux/common/fixedlengthspline_.hh b/dumux/common/fixedlengthspline_.hh
index bb939e5a183e00ebe2a970521a4fe31fc0102e06..0341b222526a00ed2d00e638fe9aa26f1cc95e8a 100644
--- a/dumux/common/fixedlengthspline_.hh
+++ b/dumux/common/fixedlengthspline_.hh
@@ -42,10 +42,10 @@ class FixedLengthSpline_
 {
     friend class SplineCommon_<ScalarT, FixedLengthSpline_<ScalarT, nSamples> >;
 
-    typedef ScalarT Scalar;
-    typedef Dune::FieldVector<Scalar, nSamples> Vector;
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > BlockVector;
-    typedef Dune::BTDMatrix<Dune::FieldMatrix<Scalar, 1, 1> > BTDMatrix;
+    using Scalar = ScalarT;
+    using Vector = Dune::FieldVector<Scalar, nSamples>;
+    using BlockVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using BTDMatrix = Dune::BTDMatrix<Dune::FieldMatrix<Scalar, 1, 1> >;
 
 protected:
     FixedLengthSpline_()
diff --git a/dumux/common/fvproblem.hh b/dumux/common/fvproblem.hh
index e31305bde91dadbb7572e209ab19f06c4f4910f8..15819a5eaa825d1fbd17c1d978371f011941e2c4 100644
--- a/dumux/common/fvproblem.hh
+++ b/dumux/common/fvproblem.hh
@@ -581,7 +581,7 @@ public:
      */
     // void serialize()
     // {
-    //     typedef Restart Restarter;
+    //     using Restarter = Restart;
     //     Restarter res;
     //     res.serializeBegin(asImp_());
     //     if (gridView().comm().rank() == 0)
@@ -621,7 +621,7 @@ public:
      */
     // void restart(const Scalar tRestart)
     // {
-    //     typedef Restart Restarter;
+    //     using Restarter = Restart;
 
     //     Restarter res;
 
diff --git a/dumux/common/intersectionmapper.hh b/dumux/common/intersectionmapper.hh
index df7849a843ca0d15e8d567b940c84bb1e791a6cd..d69b376e7959dae09326da8b46ee14edffad1c93 100644
--- a/dumux/common/intersectionmapper.hh
+++ b/dumux/common/intersectionmapper.hh
@@ -183,10 +183,10 @@ private:
 template<class GridView>
 class IntersectionMapper
 {
-    typedef typename GridView::Grid Grid;
+    using Grid = typename GridView::Grid;
     enum {dim=Grid::dimension};
-    typedef typename Grid::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename Grid::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 #if DUNE_VERSION_NEWER(DUNE_COMMON,2,6)
     using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>;
 #else
diff --git a/dumux/common/pointsource.hh b/dumux/common/pointsource.hh
index 4b67f80beba9bccdfeed758152a630e788336138..2b429d5df2aa3997d94aa4e14fdb87c49073f897 100644
--- a/dumux/common/pointsource.hh
+++ b/dumux/common/pointsource.hh
@@ -47,17 +47,17 @@ class PointSourceHelper;
 template<class TypeTag>
 class PointSource
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, SubControlVolume) SubControlVolume;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     static const int dimworld = GridView::dimensionworld;
-    typedef typename Dune::FieldVector<Scalar, dimworld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimworld>;
 
 public:
     //! Constructor for constant point sources
@@ -161,13 +161,13 @@ private:
 template<class TypeTag, typename IdType>
 class IdPointSource : public PointSource<TypeTag>
 {
-    typedef PointSource<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using ParentType = PointSource<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     static const int dimworld = GridView::dimensionworld;
-    typedef typename Dune::FieldVector<Scalar, dimworld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimworld>;
 
 public:
     //! Constructor for constant point sources
diff --git a/dumux/common/properties/propertysystem.hh b/dumux/common/properties/propertysystem.hh
index 48482ec2cf1b274b5254dd4b78894bd10c80ff50..85b1725ded6de0e02e9252d745b336e163122e48 100644
--- a/dumux/common/properties/propertysystem.hh
+++ b/dumux/common/properties/propertysystem.hh
@@ -213,7 +213,7 @@ namespace Properties
  *    // property is defined on. Note that blabbProb does not need to
  *    // be defined on FooTypeTag, but can also be defined for some
  *    // derived type tag.
- *    typedef typename GET_PROP(TypeTag, blabbProp) blabb;
+ *    using blabb = typename GET_PROP(TypeTag, blabbProp);
  *
  *    static int calculateInternal_(int arg)
  *    { return arg * blabb::value; };
@@ -272,7 +272,7 @@ namespace Properties
               PropTagName,                                      \
               /*value=*/__VA_ARGS__)                            \
     {                                                           \
-        typedef int type;                                       \
+        using type = int;                                       \
         static constexpr int value = __VA_ARGS__;               \
     }
 
@@ -287,7 +287,7 @@ namespace Properties
               PropTagName,                                          \
               /*value=*/__VA_ARGS__)                                \
     {                                                               \
-        typedef bool type;                                          \
+        using type = bool;                                          \
         static constexpr bool value = __VA_ARGS__;                  \
     }
 
@@ -302,7 +302,7 @@ namespace Properties
               PropTagName,                                        \
               /*value=*/__VA_ARGS__)                              \
     {                                                             \
-        typedef __VA_ARGS__ type;                                 \
+        using type = __VA_ARGS__;                                 \
     }
 
 /*!
@@ -318,9 +318,9 @@ namespace Properties
               PropTagName,                                              \
               /*value=*/__VA_ARGS__)                                    \
     {                                                                   \
-        typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;         \
+        using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);         \
     public:                                                             \
-        typedef Scalar type;                                            \
+        using type = Scalar;                                            \
         static const Scalar value;                                      \
     };                                                                  \
     template <class TypeTag>                                            \
@@ -340,7 +340,7 @@ namespace Properties
               /*value=*/__VA_ARGS__)                                    \
     {                                                                   \
     public:                                                             \
-        typedef std::string type;                                       \
+        using type = std::string;                                       \
         static const std::string value;                                 \
     };                                                                  \
     template <class TypeTag>                                            \
@@ -503,8 +503,8 @@ private:
 class PropertyRegistry
 {
 public:
-    typedef std::map<std::string, PropertyRegistryKey> KeyList;
-    typedef std::map<std::string, KeyList> KeyListMap;
+    using KeyList = std::map<std::string, PropertyRegistryKey>;
+    using KeyListMap = std::map<std::string, KeyList>;
 
     static void addKey(const PropertyRegistryKey &key)
     {
@@ -530,8 +530,8 @@ PropertyRegistry::KeyListMap PropertyRegistry::keys_;
 class TypeTagRegistry
 {
 public:
-    typedef std::list<std::string> ChildrenList;
-    typedef std::map<std::string, ChildrenList> ChildrenListMap;
+    using ChildrenList = std::list<std::string>;
+    using ChildrenListMap = std::map<std::string, ChildrenList>;
 
     template <class TypeTag, class Child1, class Child2, class Child3, class Child4, class Child5, class Dummy>
     static void addChildren()
@@ -812,7 +812,7 @@ public:
 template <class RealTypeTag, class Tree, class PropertyTag>
 class propertyTagIndex
 {
-    typedef propertyDefined<RealTypeTag, Tree, PropertyTag> definedWhere;
+    using definedWhere = propertyDefined<RealTypeTag, Tree, PropertyTag>;
 
 public:
     static const int value =
@@ -837,13 +837,13 @@ template <class SelfT,
 class TypeTag
 {
 public:
-    typedef SelfT SelfType;
+    using SelfType = SelfT;
 
-    typedef Child1T Child1;
-    typedef Child2T Child2;
-    typedef Child3T Child3;
-    typedef Child4T Child4;
-    typedef Child5T Child5;
+    using Child1 = Child1T;
+    using Child2 = Child2T;
+    using Child3 = Child3T;
+    using Child4 = Child4T;
+    using Child5 = Child5T;
 };
 
 NEW_TYPE_TAG(__Default);
@@ -862,7 +862,7 @@ struct GetProperty
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, -1>
 {
-    typedef DefaultProperty<RealTypeTag, PropertyTag>  p;
+    using p = DefaultProperty<RealTypeTag, PropertyTag>;
 };
 
 // property defined on self
@@ -870,42 +870,42 @@ struct GetProperty<TypeTag, PropertyTag, RealTypeTag, -1>
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 0>
 {
-    typedef Property<RealTypeTag, TypeTag, PropertyTag>   p;
+    using p = Property<RealTypeTag, TypeTag, PropertyTag>;
 };
 
 //! \internal
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 1>
 {
-    typedef typename GetProperty<typename TypeTag::Child1, PropertyTag, RealTypeTag>::p p;
+    using p = typename GetProperty<typename TypeTag::Child1, PropertyTag, RealTypeTag>::p;
 };
 
 //! \internal
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 2>
 {
-    typedef typename GetProperty<typename TypeTag::Child2, PropertyTag, RealTypeTag>::p p;
+    using p = typename GetProperty<typename TypeTag::Child2, PropertyTag, RealTypeTag>::p;
 };
 
 //! \internal
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 3>
 {
-    typedef typename GetProperty<typename TypeTag::Child3, PropertyTag, RealTypeTag>::p p;
+    using p = typename GetProperty<typename TypeTag::Child3, PropertyTag, RealTypeTag>::p;
 };
 
 //! \internal
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 4>
 {
-    typedef typename GetProperty<typename TypeTag::Child4, PropertyTag, RealTypeTag>::p p;
+    using p = typename GetProperty<typename TypeTag::Child4, PropertyTag, RealTypeTag>::p;
 };
 
 //! \internal
 template <class TypeTag, class PropertyTag, class RealTypeTag>
 struct GetProperty<TypeTag, PropertyTag, RealTypeTag, 5>
 {
-    typedef typename GetProperty<typename TypeTag::Child5, PropertyTag, RealTypeTag>::p p;
+    using p = typename GetProperty<typename TypeTag::Child5, PropertyTag, RealTypeTag>::p;
 };
 
 #if !defined NO_PROPERTY_INTROSPECTION
@@ -945,7 +945,7 @@ inline bool getDiagnostic_(const std::string &typeTagName,
     }
 
     // print properties defined on children
-    typedef TypeTagRegistry::ChildrenList ChildrenList;
+    using ChildrenList = TypeTagRegistry::ChildrenList;
     const ChildrenList &children = TypeTagRegistry::children(typeTagName);
     ChildrenList::const_iterator ttagIt = children.begin();
     std::string newIndent = indent + "  ";
@@ -1027,7 +1027,7 @@ inline void print_(const std::string &typeTagName,
     if (!somethingPrinted)
         os << " (none)\n";
     // print properties defined on children
-    typedef TypeTagRegistry::ChildrenList ChildrenList;
+    using ChildrenList = TypeTagRegistry::ChildrenList;
     const ChildrenList &children = TypeTagRegistry::children(typeTagName);
     ChildrenList::const_iterator ttagIt = children.begin();
     std::string newIndent = indent + "  ";
@@ -1089,7 +1089,7 @@ template <class TypeTag>
 class TypeTagAncestors
 {
 public:
-    typedef std::vector<std::vector<std::string>> AncestorMatrix;
+    using AncestorMatrix = std::vector<std::vector<std::string> >;
 
     static void addAncestors()
     {
diff --git a/dumux/common/quad.hh b/dumux/common/quad.hh
index f0d8d320016bd2d9c8c0836b031e2c222d39c2a4..7ff98429752c1018d49e1bb748fd252a92136c27 100644
--- a/dumux/common/quad.hh
+++ b/dumux/common/quad.hh
@@ -33,7 +33,7 @@ extern "C" {
 #include <quadmath.h>
 }
 
-typedef __float128 quad;
+using quad = __float128;
 
 namespace std
 {
diff --git a/dumux/common/spline.hh b/dumux/common/spline.hh
index a42ada6b09fe66b140075394c5ae75da7e362f3d..de3758578f2ca12ff455465e8a3b9b1be446a80f 100644
--- a/dumux/common/spline.hh
+++ b/dumux/common/spline.hh
@@ -272,8 +272,8 @@ template<class Scalar>
 class Spline<Scalar, 2> : public SplineCommon_<Scalar, Spline<Scalar, 2> >
 {
     friend class  SplineCommon_<Scalar, Spline<Scalar, 2> >;
-    typedef Dune::FieldVector<Scalar, 2> Vector;
-    typedef Dune::FieldMatrix<Scalar, 2, 2> Matrix;
+    using Vector = Dune::FieldVector<Scalar, 2>;
+    using Matrix = Dune::FieldMatrix<Scalar, 2, 2>;
 
 public:
     Spline()
diff --git a/dumux/common/splinecommon_.hh b/dumux/common/splinecommon_.hh
index ed99383ebac13f8e1a11653f518bdcfa08d2d694..194d1a420fdf70a7d32fa595695d7977b64a68df 100644
--- a/dumux/common/splinecommon_.hh
+++ b/dumux/common/splinecommon_.hh
@@ -41,8 +41,8 @@ namespace Dumux
 template<class ScalarT, class ImplementationT>
 class SplineCommon_
 {
-    typedef ScalarT Scalar;
-    typedef ImplementationT Implementation;
+    using Scalar = ScalarT;
+    using Implementation = ImplementationT;
 
     Implementation &asImp_()
     { return *static_cast<Implementation*>(this); }
diff --git a/dumux/common/timemanager.hh b/dumux/common/timemanager.hh
index c11263e544b36a888a83dafa0711b1f38ddf92fe..5dbbd2905a8d750bfa36e11803aae819ac75d84f 100644
--- a/dumux/common/timemanager.hh
+++ b/dumux/common/timemanager.hh
@@ -65,8 +65,8 @@ NEW_PROP_TAG(Problem);
 template <class TypeTag>
 class TimeManager
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     TimeManager(const TimeManager&)
     {}
diff --git a/dumux/common/variablelengthspline_.hh b/dumux/common/variablelengthspline_.hh
index 80877c7cf2da470fc688fbcab24ee7290150c16d..21ba8d52a190ec6dddd21c6842a2475bb32dd221 100644
--- a/dumux/common/variablelengthspline_.hh
+++ b/dumux/common/variablelengthspline_.hh
@@ -43,9 +43,9 @@ class VariableLengthSpline_
 {
     friend class SplineCommon_<ScalarT, VariableLengthSpline_<ScalarT> >;
 
-    typedef ScalarT Scalar;
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > Vector;
-    typedef Dune::BTDMatrix<Dune::FieldMatrix<Scalar, 1, 1> > BTDMatrix;
+    using Scalar = ScalarT;
+    using Vector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using BTDMatrix = Dune::BTDMatrix<Dune::FieldMatrix<Scalar, 1, 1> >;
 
 public:
     /*!
diff --git a/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh b/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
index 9e3e3279db9acaa56c5de1483ecac92429d36994..c92afa9bf3a005ac0bd3e824142e7751b828074f 100644
--- a/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
+++ b/dumux/discretization/cellcentered/mpfa/interactionvolumebase.hh
@@ -37,7 +37,7 @@ namespace Dumux
  * \brief Base class for the interaction volume traits. The types stated here
  *        have to be defined in interaction volume traits. It is recommended
  *        that different implementations inherit from this class and overwrite the
- *        desired types or publicly state the typedef of this base class.
+ *        desired types or publicly state the types of this base class.
  */
 template<class TypeTag>
 class CCMpfaInteractionVolumeTraitsBase
diff --git a/dumux/discretization/cellcentered/tpfa/properties.hh b/dumux/discretization/cellcentered/tpfa/properties.hh
index 816a03de3b64602543ca8de5d90a50e9af5a67f4..22de02dac9bcea98cb47c6bb64bfb9933ba7b965 100644
--- a/dumux/discretization/cellcentered/tpfa/properties.hh
+++ b/dumux/discretization/cellcentered/tpfa/properties.hh
@@ -132,7 +132,7 @@ private:
         using BoundaryFlag = Dumux::BoundaryFlag<Grid>;
     };
 public:
-    typedef Dumux::CCTpfaSubControlVolumeFace<ScvfGeometryTraits> type;
+    using type = Dumux::CCTpfaSubControlVolumeFace<ScvfGeometryTraits>;
 };
 
 //! Set the solution vector type for an element
diff --git a/dumux/discretization/staggered/properties.hh b/dumux/discretization/staggered/properties.hh
index 85122c7686e6c0844aa536fc31edbb2ea6878eed..ceed74b9791fe772e181e0cdce2651d3008305d9 100644
--- a/dumux/discretization/staggered/properties.hh
+++ b/dumux/discretization/staggered/properties.hh
@@ -196,7 +196,7 @@ private:
     using CellCenterSolutionVector = typename GET_PROP_TYPE(TypeTag, CellCenterSolutionVector);
     using FaceSolutionVector = typename GET_PROP_TYPE(TypeTag, FaceSolutionVector);
 public:
-    typedef typename Dune::MultiTypeBlockVector<CellCenterSolutionVector, FaceSolutionVector> type;
+    using type = Dune::MultiTypeBlockVector<CellCenterSolutionVector, FaceSolutionVector>;
 };
 
 //! Set the type of a global jacobian matrix from the solution types TODO: move to LinearAlgebra traits
diff --git a/dumux/freeflow/navierstokes/model.hh b/dumux/freeflow/navierstokes/model.hh
index 6f8258188d47d1eaf89db0e55f62142090025d4f..ffe11b161072c57819d33e772b09b7586a4ac9fb 100644
--- a/dumux/freeflow/navierstokes/model.hh
+++ b/dumux/freeflow/navierstokes/model.hh
@@ -98,10 +98,10 @@
   */
  SET_PROP(NavierStokes, FluidState){
      private:
-         typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-         typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+         using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+         using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
      public:
-         typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> type;
+         using type = Dumux::ImmiscibleFluidState<Scalar, FluidSystem>;
  };
 
  //! The local residual function
diff --git a/dumux/io/artgridcreator.hh b/dumux/io/artgridcreator.hh
index 330be5094613b616cd4178dba439df1662102422..2b135d81d0ea5b0f58e489730eb06175742d5d30 100644
--- a/dumux/io/artgridcreator.hh
+++ b/dumux/io/artgridcreator.hh
@@ -56,15 +56,15 @@ NEW_PROP_TAG(GridCreator);
 template <class TypeTag>
 class ArtGridCreator
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid)  Grid;
-    typedef Grid* GridPointer;
-    typedef Dune::FieldVector<double, 3> Coordinates;
-    typedef std::vector<Coordinates> VerticesVector;
-    typedef Dune::FieldVector<int, 3> EdgePoints;
-    typedef std::vector<EdgePoints> EdgesVector;
-    typedef Dune::FieldVector<int, 4> Faces;
-    typedef std::vector<Faces> FacesVector;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridPointer = Grid*;
+    using Coordinates = Dune::FieldVector<double, 3>;
+    using VerticesVector = std::vector<Coordinates>;
+    using EdgePoints = Dune::FieldVector<int, 3>;
+    using EdgesVector = std::vector<EdgePoints>;
+    using Faces = Dune::FieldVector<int, 4>;
+    using FacesVector = std::vector<Faces>;
 
 public:
     /*!
@@ -497,8 +497,8 @@ int ArtGridCreator<TypeTag>::elementNumber_;
 template<class TypeTag>
 class FractureMapper
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView)  GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator)  GridCreator;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 public:
     // mapper: one data element in every entity
     template<int dim>
@@ -509,10 +509,10 @@ public:
             return geomType.dim() == dim-1;
         }
     };
-    typedef typename GridView::ctype DT;
+    using DT = typename GridView::ctype;
     enum {dim = GridView::dimension};
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, FaceLayout> FaceMapper;
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout> VertexMapper;
+    using FaceMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, FaceLayout>;
+    using VertexMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout>;
 
 public:
     /*!
diff --git a/dumux/io/cpgridcreator.hh b/dumux/io/cpgridcreator.hh
index b14f47845b6d0793e8ec7c34d173a77e49f12a7f..69038a4729d886150db3aa1c67b621f7e0c1abef 100644
--- a/dumux/io/cpgridcreator.hh
+++ b/dumux/io/cpgridcreator.hh
@@ -47,10 +47,10 @@ NEW_PROP_TAG(Grid);
 template <class TypeTag>
 class CpGridCreator
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid)  Grid;
-    typedef std::shared_ptr<Grid> GridPointer;
-    typedef Opm::Deck Deck;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridPointer = std::shared_ptr<Grid>;
+    using Deck = Opm::Deck;
 
 public:
     /*!
diff --git a/dumux/io/gnuplotinterface.hh b/dumux/io/gnuplotinterface.hh
index 94bbefd34bafa6d5e0628621871c1acb35cd04d6..58b0fd15b6b5d661ae2d55d89c69cce5eedf68e1 100644
--- a/dumux/io/gnuplotinterface.hh
+++ b/dumux/io/gnuplotinterface.hh
@@ -56,10 +56,10 @@ template<class Scalar>
 class GnuplotInterface
 {
 public:
-    typedef std::vector<std::string> StringVector;
+    using StringVector = std::vector<std::string>;
     enum class CurveType
     { function, file, data };
-    typedef std::vector<CurveType> CurveTypeVector;
+    using CurveTypeVector = std::vector<CurveType>;
 
     //! \brief The constructor
     GnuplotInterface(bool persist = true) :
diff --git a/dumux/io/gridcreator.hh b/dumux/io/gridcreator.hh
index 4aecba74850f4e57b5e8285d022eb5650cff5991..139023ba194217640a5c49aa8f674cf27727aadc 100644
--- a/dumux/io/gridcreator.hh
+++ b/dumux/io/gridcreator.hh
@@ -1049,7 +1049,7 @@ class GridCreatorImpl<Dune::ALUGrid<dim, dimworld, elType, refinementType>, Disc
           : public GridCreatorBase<Dune::ALUGrid<dim, dimworld, elType, refinementType> >
 {
 public:
-    typedef typename Dune::ALUGrid<dim, dimworld, elType, refinementType> Grid;
+    using Grid = Dune::ALUGrid<dim, dimworld, elType, refinementType>;
     using ParentType = GridCreatorBase<Grid>;
 
     /*!
@@ -1126,7 +1126,7 @@ class GridCreatorImpl<Dune::FoamGrid<dim, dimworld>, DiscMethod>
           : public GridCreatorBase<Dune::FoamGrid<dim, dimworld> >
 {
 public:
-    typedef typename Dune::FoamGrid<dim, dimworld> Grid;
+    using Grid = Dune::FoamGrid<dim, dimworld>;
     using ParentType = GridCreatorBase<Grid>;
 
     /*!
@@ -1180,7 +1180,7 @@ class GridCreatorImpl<Dune::FoamGrid<1, dimworld>, DiscMethod>
           : public GridCreatorBase<Dune::FoamGrid<1, dimworld> >
 {
 public:
-    typedef typename Dune::FoamGrid<1, dimworld> Grid;
+    using Grid = Dune::FoamGrid<1, dimworld>;
     using ParentType = GridCreatorBase<Grid>;
 
     /*!
diff --git a/dumux/io/vtkmultiwriter.hh b/dumux/io/vtkmultiwriter.hh
index ff7dd942a475fcdb0ce6be5669e6bdd84755d2db..38b30678499bfe5b8f30445f6c770edf5b035dc6 100644
--- a/dumux/io/vtkmultiwriter.hh
+++ b/dumux/io/vtkmultiwriter.hh
@@ -61,14 +61,14 @@ class DUNE_DEPRECATED_MSG("Use VtkOutputModule instead!") VtkMultiWriter
 {
     enum { dim = GridView::dimension };
 #if DUNE_VERSION_NEWER(DUNE_COMMON,2,6)
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView> VertexMapper;
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView> ElementMapper;
+    using VertexMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>;
+    using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>;
 #else
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout> VertexMapper;
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout> ElementMapper;
+    using VertexMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout>;
+    using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout>;
 #endif
 public:
-    typedef Dune::VTKWriter<GridView> VtkWriter;
+    using VtkWriter = Dune::VTKWriter<GridView>;
     VtkMultiWriter(const GridView &gridView,
                    const std::string &simName = "",
                    std::string multiFileName = "")
@@ -149,7 +149,7 @@ public:
     template <class Scalar, int nComp>
     Dune::BlockVector<Dune::FieldVector<Scalar, nComp> > *allocateManagedBuffer(int nEntities)
     {
-        typedef Dune::BlockVector<Dune::FieldVector<Scalar, nComp> > VectorField;
+        using VectorField = Dune::BlockVector<Dune::FieldVector<Scalar, nComp> >;
 
         std::shared_ptr<ManagedVectorField_<VectorField> > vfs =
             std::make_shared<ManagedVectorField_<VectorField> >(nEntities);
@@ -186,7 +186,7 @@ public:
         sanitizeBuffer_(buf, nComps);
 
         using FunctionPtr = std::shared_ptr<const typename VtkWriter::VTKFunction>;
-        typedef VtkNestedFunction<GridView, VertexMapper, DataBuffer> VtkFn;
+        using VtkFn = VtkNestedFunction<GridView, VertexMapper, DataBuffer>;
         FunctionPtr fnPtr(new VtkFn(name,
                                     gridView_,
                                     vertexMapper_,
@@ -217,7 +217,7 @@ public:
         sanitizeBuffer_(buf, nComps);
 
         using FunctionPtr = std::shared_ptr<const typename VtkWriter::VTKFunction>;
-        typedef VtkNestedFunction<GridView, ElementMapper, DataBuffer> VtkFn;
+        using VtkFn = VtkNestedFunction<GridView, ElementMapper, DataBuffer>;
         FunctionPtr fnPtr(new VtkFn(name,
                                     gridView_,
                                     elementMapper_,
diff --git a/dumux/io/vtknestedfunction.hh b/dumux/io/vtknestedfunction.hh
index 45ee9fdf2e53459e348440774fc1d49ac1b58d85..389732a32170a5f3c74b55a315f87246e2415e6c 100644
--- a/dumux/io/vtknestedfunction.hh
+++ b/dumux/io/vtknestedfunction.hh
@@ -40,9 +40,9 @@ template <class GridView, class Mapper, class Buffer>
 class VtkNestedFunction : public Dune::VTKFunction<GridView>
 {
     enum { dim = GridView::dimension };
-    typedef typename GridView::ctype ctype;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename Dune::ReferenceElements<ctype, dim> ReferenceElements;
+    using ctype = typename GridView::ctype;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ReferenceElements = Dune::ReferenceElements<ctype, dim>;
 
 public:
     VtkNestedFunction(std::string name,
diff --git a/dumux/linear/amgbackend.hh b/dumux/linear/amgbackend.hh
index e2c368076b02486bc09f35cd6db049371de23a58..6a43782d1e2df1281964d09be77170c78d3345c8 100644
--- a/dumux/linear/amgbackend.hh
+++ b/dumux/linear/amgbackend.hh
@@ -51,14 +51,14 @@ void scaleLinearSystem(Matrix& matrix, Vector& rhs)
     typename Matrix::RowIterator row = matrix.begin();
     for(; row != matrix.end(); ++row)
     {
-        typedef typename Matrix::size_type size_type;
+        using size_type = typename Matrix::size_type;
         size_type rowIdx = row.index();
 
-        typedef typename Matrix::block_type MatrixBlock;
+        using MatrixBlock = typename Matrix::block_type;
         MatrixBlock diagonal = matrix[rowIdx][rowIdx];
         diagonal.invert();
 
-        typedef typename Vector::block_type VectorBlock;
+        using VectorBlock = typename Vector::block_type;
         const VectorBlock b = rhs[rowIdx];
         diagonal.mv(b, rhs[rowIdx]);
 
diff --git a/dumux/linear/amgparallelhelpers.hh b/dumux/linear/amgparallelhelpers.hh
index 91e873439cb52f0ae392263a9679f4f73934e11b..76d49a55d4b6a2ca341b893fbbe04f5a612d8c6a 100644
--- a/dumux/linear/amgparallelhelpers.hh
+++ b/dumux/linear/amgparallelhelpers.hh
@@ -71,7 +71,7 @@ class ParallelISTLHelper
           public Dune::CommDataHandleIF<ConsistencyBoxGatherScatter<V>,typename V::block_type>
     {
     public:
-        typedef typename V::block_type DataType;
+        using DataType = typename V::block_type;
 
         ConsistencyBoxGatherScatter(V& container, const DofMapper& mapper)
         : BaseGatherScatter(mapper), container_(container)
@@ -122,7 +122,7 @@ class ParallelISTLHelper
           public Dune::CommDataHandleIF<GhostGatherScatter,std::size_t>
     {
     public:
-        typedef std::size_t DataType;
+        using DataType = std::size_t;
 
         GhostGatherScatter(std::vector<std::size_t>& ranks, const DofMapper& mapper)
         : BaseGatherScatter(mapper), ranks_(ranks)
@@ -178,7 +178,7 @@ class ParallelISTLHelper
           public Dune::CommDataHandleIF<InteriorBorderGatherScatter,std::size_t>
     {
     public:
-        typedef std::size_t DataType;
+        using DataType = std::size_t;
 
         InteriorBorderGatherScatter(std::vector<std::size_t>& ranks, const DofMapper& mapper)
         : BaseGatherScatter(mapper), ranks_(ranks)
@@ -236,7 +236,7 @@ class ParallelISTLHelper
         : public BaseGatherScatter,
           public Dune::CommDataHandleIF<NeighbourGatherScatter,int>
     {
-        typedef int DataType;
+        using DataType = int;
 
         NeighbourGatherScatter(const DofMapper& mapper, int rank_, std::set<int>& neighbours_)
         : BaseGatherScatter(mapper), myrank(rank_), neighbours(neighbours_)
@@ -285,7 +285,7 @@ class ParallelISTLHelper
         : public BaseGatherScatter,
           public Dune::CommDataHandleIF<SharedGatherScatter,int>
     {
-        typedef int DataType;
+        using DataType = int;
 
         SharedGatherScatter(std::vector<int>& shared, const DofMapper& mapper)
         : BaseGatherScatter(mapper), shared_(shared)
@@ -336,7 +336,7 @@ class ParallelISTLHelper
         : public BaseGatherScatter,
           public Dune::CommDataHandleIF<GlobalIndexGatherScatter<GI>, GI>
     {
-        typedef GI DataType;
+        using DataType = GI;
         GlobalIndexGatherScatter(std::vector<GI>& gindices, const DofMapper& mapper)
         : BaseGatherScatter(mapper), gindices_(gindices)
         {}
@@ -783,10 +783,10 @@ public:
             A.setSize(tmp.N(), tmp.N(), nnz);
             A.setBuildMode(Matrix::row_wise);
             typename Matrix::CreateIterator citer = A.createbegin();
-            typedef typename std::vector<std::set<int> >::const_iterator Iter;
+            using Iter = typename std::vector<std::set<int> >::const_iterator;
             for (Iter i = sparsity.begin(), end = sparsity.end(); i!=end; ++i, ++citer)
             {
-                typedef typename std::set<int>::const_iterator SIter;
+                using SIter = typename std::set<int>::const_iterator;
                 for (SIter si = i->begin(), send = i->end(); si!=send; ++si)
                     citer.insert(*si);
             }
@@ -857,9 +857,9 @@ void EntityExchanger<TypeTag>::getExtendedMatrix (Matrix& A) const
         A.setSize(tmp.N(), tmp.N(), nnz);
         A.setBuildMode(Matrix::row_wise);
         typename Matrix::CreateIterator citer = A.createbegin();
-        typedef typename std::vector<std::set<int> >::const_iterator Iter;
+        using Iter = typename std::vector<std::set<int> >::const_iterator;
         for (Iter i = sparsity.begin(), end = sparsity.end(); i!=end; ++i, ++citer){
-            typedef typename std::set<int>::const_iterator SIter;
+            using SIter = typename std::set<int>::const_iterator;
             for (SIter si = i->begin(), send = i->end(); si!=send; ++si)
                 citer.insert(*si);
         }
diff --git a/dumux/linear/linearsolveracceptsmultitypematrix.hh b/dumux/linear/linearsolveracceptsmultitypematrix.hh
index 1a9fb40f3086f6f5ce22357bff633e20ebf66c47..9d19e662a232ed59043e7152b73ca7bc056dc8b2 100644
--- a/dumux/linear/linearsolveracceptsmultitypematrix.hh
+++ b/dumux/linear/linearsolveracceptsmultitypematrix.hh
@@ -32,7 +32,7 @@ template<typename TypeTag, typename LinearSolver>
 struct LinearSolverAcceptsMultiTypeMatrixImpl
 { static constexpr bool value = true; };
 
-//! Convenience typedef
+//! Convenience using declaration
 template <typename TypeTag>
 using LinearSolverAcceptsMultiTypeMatrix = LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, typename GET_PROP_TYPE(TypeTag, LinearSolver)>;
 
@@ -77,4 +77,4 @@ struct LinearSolverAcceptsMultiTypeMatrixImpl<TypeTag, UMFPackBackend<TypeTag>>
 
 } // end namespace Dumux
 
-#endif
\ No newline at end of file
+#endif
diff --git a/dumux/linear/vectorexchange.hh b/dumux/linear/vectorexchange.hh
index e5595d794c58d056d913469dfe3342bb01733418..bfbae64b7ea5718e261c0108293abaf755b4206d 100644
--- a/dumux/linear/vectorexchange.hh
+++ b/dumux/linear/vectorexchange.hh
@@ -37,7 +37,7 @@ class VectorExchange
 {
 public:
   //! export type of data for message buffer
-  typedef typename Vector::value_type DataType;
+  using DataType = typename Vector::value_type;
 
   //! returns true if data for this codim should be communicated
   bool contains (int dim, int codim) const
diff --git a/dumux/material/binarycoefficients/air_mesitylene.hh b/dumux/material/binarycoefficients/air_mesitylene.hh
index 7f1a2fe6dd19fe28bbc8870ffeb4c6d6755170c3..ef1fb32aeff3038d9f4a6446d2b4afc9ed3a216e 100644
--- a/dumux/material/binarycoefficients/air_mesitylene.hh
+++ b/dumux/material/binarycoefficients/air_mesitylene.hh
@@ -60,8 +60,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::Air<Scalar> Air;
-        typedef Dumux::Mesitylene<Scalar> Mesitylene;
+        using Air = Dumux::Air<Scalar>;
+        using Mesitylene = Dumux::Mesitylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/air_xylene.hh b/dumux/material/binarycoefficients/air_xylene.hh
index 63ff3141992e879dc95e34ff2ef2c66bc48af17d..811a89fc7dbb4d795d030528232f56a995c94d20 100644
--- a/dumux/material/binarycoefficients/air_xylene.hh
+++ b/dumux/material/binarycoefficients/air_xylene.hh
@@ -60,8 +60,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::Air<Scalar> Air;
-        typedef Dumux::Xylene<Scalar> Xylene;
+        using Air = Dumux::Air<Scalar>;
+        using Xylene = Dumux::Xylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/brine_air.hh b/dumux/material/binarycoefficients/brine_air.hh
index 9f7665054ae1ee88da7d5ef8177062f335479081..3222c8df63e4a632ce0b46ef3ccfb8a32d2cf439 100644
--- a/dumux/material/binarycoefficients/brine_air.hh
+++ b/dumux/material/binarycoefficients/brine_air.hh
@@ -37,10 +37,10 @@ namespace BinaryCoeff {
  */
 template<class Scalar, class Air, bool verbose = true>
 class Brine_Air {
-    typedef Dumux::H2O<Scalar> H2O;
-   // typedef Dumux::Air<Scalar> Air;
-    typedef Dumux::Brine<Scalar,H2O> Brine;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using H2O = Dumux::H2O<Scalar>;
+   // using Air = Dumux::Air<Scalar>;
+    using Brine = Dumux::Brine<Scalar,H2O>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
     static const int lPhaseIdx = 0; // index of the liquid phase
     static const int gPhaseIdx = 1; // index of the gas phase
 
@@ -397,10 +397,10 @@ private:
 template<class Scalar, class Air, bool verbose = true>
 class Brine_Air_Old
 {
-    typedef Dumux::H2O<Scalar> H2O;
-    typedef Dumux::Brine<Scalar,H2O> Brine;
-   // typedef Dumux::Air<Scalar> Air;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using H2O = Dumux::H2O<Scalar>;
+    using Brine = Dumux::Brine<Scalar,H2O>;
+   // using Air = Dumux::Air<Scalar>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/binarycoefficients/brine_co2.hh b/dumux/material/binarycoefficients/brine_co2.hh
index 7f3a12d56ebb3dcdd9421c9ef068f209c8304fdc..add4d655c04496cae78e6de2f533275b7a831185 100644
--- a/dumux/material/binarycoefficients/brine_co2.hh
+++ b/dumux/material/binarycoefficients/brine_co2.hh
@@ -37,9 +37,9 @@ namespace BinaryCoeff {
  */
 template<class Scalar, class CO2Tables, bool verbose = true>
 class Brine_CO2 {
-    typedef Dumux::H2O<Scalar> H2O;
-    typedef Dumux::CO2<Scalar, CO2Tables> CO2;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using H2O = Dumux::H2O<Scalar>;
+    using CO2 = Dumux::CO2<Scalar, CO2Tables>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
     static const int lPhaseIdx = 0; // index of the liquid phase
     static const int gPhaseIdx = 1; // index of the gas phase
 
@@ -381,10 +381,10 @@ private:
 template<class Scalar, class CO2Tables, bool verbose = true>
 class Brine_CO2_Old
 {
-    typedef Dumux::H2O<Scalar> H2O;
-  typedef Dumux::Brine<Scalar,H2O> Brine;
-    typedef Dumux::CO2<Scalar, CO2Tables> CO2;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using H2O = Dumux::H2O<Scalar>;
+  using Brine = Dumux::Brine<Scalar,H2O>;
+    using CO2 = Dumux::CO2<Scalar, CO2Tables>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/binarycoefficients/h2o_mesitylene.hh b/dumux/material/binarycoefficients/h2o_mesitylene.hh
index cb49821687078b14ca5ae34f409586510890ab38..b19a70bcc7f4cc4254a01c9956140b0876baf8a2 100644
--- a/dumux/material/binarycoefficients/h2o_mesitylene.hh
+++ b/dumux/material/binarycoefficients/h2o_mesitylene.hh
@@ -65,8 +65,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::H2O<Scalar> H2O;
-        typedef Dumux::Mesitylene<Scalar> Mesitylene;
+        using H2O = Dumux::H2O<Scalar>;
+        using Mesitylene = Dumux::Mesitylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/h2o_n2.hh b/dumux/material/binarycoefficients/h2o_n2.hh
index 51539b8c9c6c65c71825c31d46c40a70a92b862e..b1e2128f953fd949a22af78cdc72bc06cfc60eb7 100644
--- a/dumux/material/binarycoefficients/h2o_n2.hh
+++ b/dumux/material/binarycoefficients/h2o_n2.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::H2O<Scalar> H2O;
-        typedef Dumux::N2<Scalar> N2;
+        using H2O = Dumux::H2O<Scalar>;
+        using N2 = Dumux::N2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 13.1 /* H2O */,  18.5 /* N2 */ };
diff --git a/dumux/material/binarycoefficients/h2o_o2.hh b/dumux/material/binarycoefficients/h2o_o2.hh
index 1326aa1455f7b45ebd599914524dc3e36b78dd18..f5022d0f2042025ece57c916d72b3bf28e114852 100644
--- a/dumux/material/binarycoefficients/h2o_o2.hh
+++ b/dumux/material/binarycoefficients/h2o_o2.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::H2O<Scalar> H2O;
-        typedef O2<Scalar>  O2;
+        using H2O = Dumux::H2O<Scalar>;
+        using O2 = O2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 13.1 /* H2O */,  16.3 /* O2 */ };
diff --git a/dumux/material/binarycoefficients/h2o_xylene.hh b/dumux/material/binarycoefficients/h2o_xylene.hh
index d4dc12d4b3f2381cee195cacd3dce72384e63f22..4c0c13561885314fea0601130b48f692c6396d04 100644
--- a/dumux/material/binarycoefficients/h2o_xylene.hh
+++ b/dumux/material/binarycoefficients/h2o_xylene.hh
@@ -67,8 +67,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::H2O<Scalar> H2O;
-        typedef Dumux::Xylene<Scalar> Xylene;
+        using H2O = Dumux::H2O<Scalar>;
+        using Xylene = Dumux::Xylene<Scalar>;
 
         using std::min;
         using std::max;
diff --git a/dumux/material/binarycoefficients/henryiapws.hh b/dumux/material/binarycoefficients/henryiapws.hh
index 2ceaf9e7008542e26789713f3aa89aefb3dc71fb..7aff4c840d891b4b05faf3a6640129dad0191aef 100644
--- a/dumux/material/binarycoefficients/henryiapws.hh
+++ b/dumux/material/binarycoefficients/henryiapws.hh
@@ -56,7 +56,7 @@ inline Scalar henryIAPWS(Scalar E,
                          Scalar H,
                          Scalar temperature)
 {
-    typedef Dumux::H2O<Scalar> H2O;
+    using H2O = Dumux::H2O<Scalar>;
 
     // regularizing temperature helps for stability.
     // Results are unphysical!
diff --git a/dumux/material/binarycoefficients/n2_o2.hh b/dumux/material/binarycoefficients/n2_o2.hh
index c6b67c26c373458407ef42b1d1d9045ba84ab53f..5baae1d2d26af35e8f2eff5be31c6181f11be7aa 100644
--- a/dumux/material/binarycoefficients/n2_o2.hh
+++ b/dumux/material/binarycoefficients/n2_o2.hh
@@ -62,8 +62,8 @@ public:
     template <class Scalar>
     static Scalar gasDiffCoeff(Scalar temperature, Scalar pressure)
     {
-        typedef Dumux::N2<Scalar> N2;
-        typedef Dumux::O2<Scalar> O2;
+        using N2 = Dumux::N2<Scalar>;
+        using O2 = Dumux::O2<Scalar>;
 
         // atomic diffusion volumes
         const Scalar SigmaNu[2] = { 18.1 /* N2 */,  16.3 /* O2 */ };
diff --git a/dumux/material/chemistry/electrochemistry/electrochemistry.hh b/dumux/material/chemistry/electrochemistry/electrochemistry.hh
index 2f5c4a223ad2e9831e6ef547c1294462ce7ee7b8..3e64759209026665a2bbfd3cea486fc06f2aa8ae 100644
--- a/dumux/material/chemistry/electrochemistry/electrochemistry.hh
+++ b/dumux/material/chemistry/electrochemistry/electrochemistry.hh
@@ -49,19 +49,19 @@ enum ElectroChemistryModel { Ochs, Acosta };
 template <class TypeTag, ElectroChemistryModel electroChemistryModel>
 class ElectroChemistry
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, NumEqVector) SourceValues;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using SourceValues = typename GET_PROP_TYPE(TypeTag, NumEqVector);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
 
-    typedef Constants<Scalar> Constant;
+    using Constant = Constants<Scalar>;
 
-    typedef ElectroChemistry<TypeTag, electroChemistryModel> ThisType;
+    using ThisType = ElectroChemistry<TypeTag, electroChemistryModel>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum {
         //indices of the phases
diff --git a/dumux/material/chemistry/electrochemistry/electrochemistryni.hh b/dumux/material/chemistry/electrochemistry/electrochemistryni.hh
index 21f8b0b8e43374075f97742760b6858c476933ed..e3b60fe6576d66196eab1a2b681fb69579aa61bf 100644
--- a/dumux/material/chemistry/electrochemistry/electrochemistryni.hh
+++ b/dumux/material/chemistry/electrochemistry/electrochemistryni.hh
@@ -41,17 +41,17 @@ namespace Dumux
 template <class TypeTag, ElectroChemistryModel electroChemistryModel>
 class ElectroChemistryNI : public ElectroChemistry<TypeTag, electroChemistryModel>
 {
-    typedef ElectroChemistry<TypeTag, electroChemistryModel> ParentType;
+    using ParentType = ElectroChemistry<TypeTag, electroChemistryModel>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, NumEqVector) SourceValues;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using SourceValues = typename GET_PROP_TYPE(TypeTag, NumEqVector);
 
-    typedef Constants<Scalar> Constant;
+    using Constant = Constants<Scalar>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         //indices of the components
         wCompIdx = FluidSystem::wCompIdx, //major component of the liquid phase
diff --git a/dumux/material/components/air.hh b/dumux/material/components/air.hh
index 9122cbc3986613f38bf6f145d84c25b8b53e3993..17b41f670298c846f78571ac8198a70e0dcfd002 100644
--- a/dumux/material/components/air.hh
+++ b/dumux/material/components/air.hh
@@ -42,7 +42,7 @@ namespace Dumux
 template <class Scalar>
 class Air : public Component<Scalar, Air<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/ch4.hh b/dumux/material/components/ch4.hh
index 65c7be37ff64d0389bfbabab97afdbe536fbd39a..dcf1b2d65849c24d6b059d97e49b6183e289488b 100644
--- a/dumux/material/components/ch4.hh
+++ b/dumux/material/components/ch4.hh
@@ -45,7 +45,7 @@ namespace Dumux
 template <class Scalar>
 class CH4 : public Component<Scalar, CH4<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/co2.hh b/dumux/material/components/co2.hh
index f62157c90062e39db09823b53296b4e5c198949d..39bdfd6cbdd554eea8318b4bdac8e05e54089732 100644
--- a/dumux/material/components/co2.hh
+++ b/dumux/material/components/co2.hh
@@ -51,7 +51,7 @@ template <class Scalar, class CO2Tables>
 class CO2 : public Component<Scalar, CO2<Scalar, CO2Tables> >
 {
     static const Scalar R;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
     static bool warningThrown;
 
diff --git a/dumux/material/components/co2tablereader.hh b/dumux/material/components/co2tablereader.hh
index daa407886c8e58baa5f218a5a896484a4bb1737a..7ae96b9f6ef51b0826875edd3f1b0f3da26b15e2 100644
--- a/dumux/material/components/co2tablereader.hh
+++ b/dumux/material/components/co2tablereader.hh
@@ -36,7 +36,7 @@ namespace Dumux {
 template <class Traits>
 class TabulatedCO2Properties
 {
-    typedef typename Traits::Scalar Scalar;
+    using Scalar = typename Traits::Scalar;
     enum { numTempSteps = Traits::numTempSteps, numPressSteps = Traits::numPressSteps };
 
 public:
diff --git a/dumux/material/components/h2.hh b/dumux/material/components/h2.hh
index 32e7d43b9b23610ea36fbeb47a13d7675269a148..f3b3792f8113fc841f36eb0ceddc4c465b082946 100644
--- a/dumux/material/components/h2.hh
+++ b/dumux/material/components/h2.hh
@@ -45,7 +45,7 @@ namespace Dumux
 template <class Scalar>
 class H2 : public Component<Scalar, H2<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/heavyoil.hh b/dumux/material/components/heavyoil.hh
index 00cb08dd5cbdc00c63aa57d31937be467762368d..d759f0de704a4e237a13e68d3a29a68fa81b9397 100644
--- a/dumux/material/components/heavyoil.hh
+++ b/dumux/material/components/heavyoil.hh
@@ -42,7 +42,7 @@ namespace Dumux
 template <class Scalar>
 class HeavyOil : public Component<Scalar, HeavyOil<Scalar> >
 {
-    typedef Dumux::Constants<Scalar> Consts;
+    using Consts = Dumux::Constants<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/mesitylene.hh b/dumux/material/components/mesitylene.hh
index b379f8de762e00c4e5328653b2db0f0c275a697f..73af118f97947c29c97ca22146430c0ff404036e 100644
--- a/dumux/material/components/mesitylene.hh
+++ b/dumux/material/components/mesitylene.hh
@@ -42,7 +42,7 @@ namespace Dumux
 template <class Scalar>
 class Mesitylene : public Component<Scalar, Mesitylene<Scalar> >
 {
-    typedef Constants<Scalar> Consts;
+    using Consts = Constants<Scalar>;;
 
 public:
     /*!
diff --git a/dumux/material/components/n2.hh b/dumux/material/components/n2.hh
index b0d5724008f6d6b80dd77990d3b89cb8ccb25d86..28a3f4b57b1468bbdd710b7af97a194bf7044124 100644
--- a/dumux/material/components/n2.hh
+++ b/dumux/material/components/n2.hh
@@ -45,7 +45,7 @@ namespace Dumux
 template <class Scalar>
 class N2 : public Component<Scalar, N2<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/o2.hh b/dumux/material/components/o2.hh
index 6b7ab93f2b9635258da00c51ec939a9a61d7032e..af9d3273da7ca629bc389aacc9382a91c49787bf 100644
--- a/dumux/material/components/o2.hh
+++ b/dumux/material/components/o2.hh
@@ -45,7 +45,7 @@ namespace Dumux
 template <class Scalar>
 class O2 : public Component<Scalar, O2<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/simpleco2.hh b/dumux/material/components/simpleco2.hh
index 8e7e1ecc479fbc303ac56336a49b3056120fb4b1..083e81a281e316d55793b4c2d4adfbbf9a73058a 100644
--- a/dumux/material/components/simpleco2.hh
+++ b/dumux/material/components/simpleco2.hh
@@ -44,7 +44,7 @@ namespace Dumux
 template <class Scalar>
 class SimpleCO2 : public Component<Scalar, SimpleCO2<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/components/simpleh2o.hh b/dumux/material/components/simpleh2o.hh
index 93d1bac55f8c07f6d9956003cbe1e46a2cffcb20..6cbd4b28079c700ba2eb54c975f3aaeaf09f35d8 100644
--- a/dumux/material/components/simpleh2o.hh
+++ b/dumux/material/components/simpleh2o.hh
@@ -44,7 +44,7 @@ namespace Dumux
 template <class Scalar>
 class SimpleH2O : public Component<Scalar, SimpleH2O<Scalar> >
 {
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
     static const Scalar R;  // specific gas constant of water
 
diff --git a/dumux/material/components/xylene.hh b/dumux/material/components/xylene.hh
index 2dad264b682db7edc0e4b8e78cff534e0c8d1cbb..4b2f245cf11b27b151d76da22b4302b221f23349 100644
--- a/dumux/material/components/xylene.hh
+++ b/dumux/material/components/xylene.hh
@@ -43,7 +43,7 @@ namespace Dumux
 template <class Scalar>
 class Xylene : public Component<Scalar, Xylene<Scalar> >
 {
-    typedef Constants<Scalar> Consts;
+    using Consts = Constants<Scalar>;;
 
 public:
     /*!
diff --git a/dumux/material/constraintsolvers/compositionalflash.hh b/dumux/material/constraintsolvers/compositionalflash.hh
index 2e1b00b8e9571fe38ce66bd75e88c4106679b07a..906bbb3c48a228bc2427f2fc522543a8144c0092 100644
--- a/dumux/material/constraintsolvers/compositionalflash.hh
+++ b/dumux/material/constraintsolvers/compositionalflash.hh
@@ -54,8 +54,8 @@ class CompositionalFlash
     };
 
 public:
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
 /*!
  * \name Concentration flash for a given feed fraction
  */
diff --git a/dumux/material/constraintsolvers/compositionfromfugacities.hh b/dumux/material/constraintsolvers/compositionfromfugacities.hh
index 286592b992283826e91e55ddc85b5a48c7412094..45ae297d5fbf2c7464b93272d645c0890cf29fa6 100644
--- a/dumux/material/constraintsolvers/compositionfromfugacities.hh
+++ b/dumux/material/constraintsolvers/compositionfromfugacities.hh
@@ -54,10 +54,10 @@ class CompositionFromFugacities
 {
     enum { numComponents = FluidSystem::numComponents };
 
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
 public:
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     /*!
      * \brief Guess an initial value for the composition of the phase.
diff --git a/dumux/material/constraintsolvers/computefromreferencephase.hh b/dumux/material/constraintsolvers/computefromreferencephase.hh
index cd7ce8034645a08f94d603fa8d246215704d4848..a75a01cef6ea3f98e4fd33be0e4ef146319a155d 100644
--- a/dumux/material/constraintsolvers/computefromreferencephase.hh
+++ b/dumux/material/constraintsolvers/computefromreferencephase.hh
@@ -81,8 +81,8 @@ class ComputeFromReferencePhase
 {
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
-    typedef Dumux::CompositionFromFugacities<Scalar, FluidSystem> CompositionFromFugacities;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using CompositionFromFugacities = Dumux::CompositionFromFugacities<Scalar, FluidSystem>;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     /*!
diff --git a/dumux/material/constraintsolvers/fluidsystemcomputefromreferencephase.hh b/dumux/material/constraintsolvers/fluidsystemcomputefromreferencephase.hh
index 7b9966219617f861510847dbedf80172419ebbf8..1a945cda3b3e365af219ff714e580f99a74243ef 100644
--- a/dumux/material/constraintsolvers/fluidsystemcomputefromreferencephase.hh
+++ b/dumux/material/constraintsolvers/fluidsystemcomputefromreferencephase.hh
@@ -66,7 +66,7 @@ class FluidSystemComputeFromReferencePhase
 {
     static constexpr int numPhases = FluidSystem::numPhases;
     static constexpr int numComponents = FluidSystem::numComponents;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     /*!
diff --git a/dumux/material/constraintsolvers/immiscibleflash.hh b/dumux/material/constraintsolvers/immiscibleflash.hh
index dd257a72ceea7c540f669af0c00fd25ed2ba3b95..031e2f17fcac88afee14ce4751f2b895ed2f8d20 100644
--- a/dumux/material/constraintsolvers/immiscibleflash.hh
+++ b/dumux/material/constraintsolvers/immiscibleflash.hh
@@ -69,15 +69,15 @@ class ImmiscibleFlash
                   "Immiscibility assumes that the number of phases"
                   " is equal to the number of components");
 
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
     static constexpr int numEq = numPhases;
 
-    typedef Dune::FieldMatrix<Scalar, numEq, numEq> Matrix;
-    typedef Dune::FieldVector<Scalar, numEq> Vector;
+    using Matrix = Dune::FieldMatrix<Scalar, numEq, numEq>;
+    using Vector = Dune::FieldVector<Scalar, numEq>;
 
 public:
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     /*!
      * \brief Guess initial values for all quantities.
diff --git a/dumux/material/constraintsolvers/ncpflash.hh b/dumux/material/constraintsolvers/ncpflash.hh
index e32fc6d9b5b82895c2dc3564d207d7078117a484..8c7c549017f4375e0847a3c960f799ccb7818282 100644
--- a/dumux/material/constraintsolvers/ncpflash.hh
+++ b/dumux/material/constraintsolvers/ncpflash.hh
@@ -80,15 +80,15 @@ class NcpFlash
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
 
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
     static constexpr int numEq = numPhases*(numComponents + 1);
 
-    typedef Dune::FieldMatrix<Scalar, numEq, numEq> Matrix;
-    typedef Dune::FieldVector<Scalar, numEq> Vector;
+    using Matrix = Dune::FieldMatrix<Scalar, numEq, numEq>;
+    using Vector = Dune::FieldVector<Scalar, numEq>;
 
 public:
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     /*!
      * \brief Guess initial values for all quantities.
diff --git a/dumux/material/eos/pengrobinson.hh b/dumux/material/eos/pengrobinson.hh
index 8568d144303fca221d799ed0c5b2a3c300979742..1fdee070253498a9af9f74f27ec93e2ebad992ff 100644
--- a/dumux/material/eos/pengrobinson.hh
+++ b/dumux/material/eos/pengrobinson.hh
@@ -98,7 +98,7 @@ public:
     template <class Params>
     static Scalar computeVaporPressure(const Params &params, Scalar T)
     {
-        typedef typename Params::Component Component;
+        using Component = typename Params::Component;
         if (T >= Component::criticalTemperature())
             return Component::criticalPressure();
 
@@ -457,7 +457,7 @@ protected:
     template <class Params>
     static Scalar ambroseWalton_(const Params &params, Scalar T)
     {
-        typedef typename Params::Component Component;
+        using Component = typename Params::Component;
 
         Scalar Tr = T / Component::criticalTemperature();
         Scalar tau = 1 - Tr;
diff --git a/dumux/material/eos/pengrobinsonmixture.hh b/dumux/material/eos/pengrobinsonmixture.hh
index 73c2c5fd35501faf615cb6b156b73e832198023e..bdb259ab5b82d7e929340b534c3fcf82aa7bd802 100644
--- a/dumux/material/eos/pengrobinsonmixture.hh
+++ b/dumux/material/eos/pengrobinsonmixture.hh
@@ -41,7 +41,7 @@ template <class Scalar, class StaticParameters>
 class PengRobinsonMixture
 {
     enum { numComponents = StaticParameters::numComponents };
-    typedef Dumux::PengRobinson<Scalar> PengRobinson;
+    using PengRobinson = Dumux::PengRobinson<Scalar>;
 
     // this class cannot be instantiated!
     PengRobinsonMixture() {};
diff --git a/dumux/material/eos/pengrobinsonparamsmixture.hh b/dumux/material/eos/pengrobinsonparamsmixture.hh
index 618eb13452537764fd15ce80dcea41ef6fad8898..8450986995f938994ceaed58cc78145cb349da4b 100644
--- a/dumux/material/eos/pengrobinsonparamsmixture.hh
+++ b/dumux/material/eos/pengrobinsonparamsmixture.hh
@@ -65,7 +65,7 @@ class PengRobinsonParamsMixture
     enum { numComponents = FluidSystem::numComponents };
 
     // Peng-Robinson parameters for pure substances
-    typedef PengRobinsonParams<Scalar> PureParams;
+    using PureParams = PengRobinsonParams<Scalar>;
 
 public:
     /*!
diff --git a/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh b/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
index 04c5b8e7a41fb0e68bde32e083f36b5326220a07..fe3affa33e3d1eebed3e9eb83ba9e5b0cdbc4a4c 100644
--- a/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/brookscorey.hh
@@ -49,8 +49,8 @@ template <class ScalarT, class ParamsT = BrooksCoreyParams<ScalarT> >
 class BrooksCorey
 {
 public:
-    typedef ParamsT     Params;
-    typedef typename    Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve according to Brooks & Corey.
diff --git a/dumux/material/fluidmatrixinteractions/2p/brookscoreyparams.hh b/dumux/material/fluidmatrixinteractions/2p/brookscoreyparams.hh
index db901fea7646b156d1ac4c4f8e15a415dd283fed..700157c8bd3481772e28b5ae92a89883333781ac 100644
--- a/dumux/material/fluidmatrixinteractions/2p/brookscoreyparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/brookscoreyparams.hh
@@ -43,7 +43,7 @@ template <class ScalarT>
 class BrooksCoreyParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     BrooksCoreyParams()
     {
diff --git a/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh b/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
index bb5b4164a8f7f66b3511bbd704ab1c70d15184d5..2bae19e8722b3cf8a4f0eba3c6964659fd85dbb0 100644
--- a/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/efftoabslaw.hh
@@ -60,11 +60,11 @@ namespace Dumux
 template <class EffLawT, class AbsParamsT = EffToAbsLawParams<typename EffLawT::Params> >
 class EffToAbsLaw
 {
-    typedef EffLawT EffLaw;
+    using EffLaw = EffLawT;
 
 public:
-    typedef AbsParamsT Params;
-    typedef typename EffLaw::Scalar Scalar;
+    using Params = AbsParamsT;
+    using Scalar = typename EffLaw::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve.
diff --git a/dumux/material/fluidmatrixinteractions/2p/efftoabslawparams.hh b/dumux/material/fluidmatrixinteractions/2p/efftoabslawparams.hh
index 839a6bbd939a376ad8c64a0ef2a00665b7de3971..24fc8cfa9da65f3430ec885c9baa1bad2f359c68 100644
--- a/dumux/material/fluidmatrixinteractions/2p/efftoabslawparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/efftoabslawparams.hh
@@ -38,9 +38,9 @@ namespace Dumux
 template <class EffLawParamsT>
 class EffToAbsLawParams : public EffLawParamsT
 {
-    typedef EffLawParamsT EffLawParams;
+    using EffLawParams = EffLawParamsT;
 public:
-    typedef typename EffLawParams::Scalar Scalar;
+    using Scalar = typename EffLawParams::Scalar;
 
     EffToAbsLawParams()
         : EffLawParams()
diff --git a/dumux/material/fluidmatrixinteractions/2p/heatpipelaw.hh b/dumux/material/fluidmatrixinteractions/2p/heatpipelaw.hh
index 7e007582fbed4dfc639c2c712652011294f6b12b..4353159c880b9ed655b5ec08fc0e9e22d315e538 100644
--- a/dumux/material/fluidmatrixinteractions/2p/heatpipelaw.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/heatpipelaw.hh
@@ -49,8 +49,8 @@ template <class ScalarT, class ParamsT = HeatPipeLawParams<ScalarT> >
 class HeatPipeLaw
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve.
@@ -155,7 +155,7 @@ private:
             return 0;
         else if (S > eps) {
             // regularize
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(eps, 1.0, // x1, x2
                       eps*eps*eps, 1, // y1, y2
                       3*eps*eps, 0); // m1, m2
diff --git a/dumux/material/fluidmatrixinteractions/2p/heatpipelawparams.hh b/dumux/material/fluidmatrixinteractions/2p/heatpipelawparams.hh
index a3d057d29462950d9fe4d0f7af64e30c479eeea3..4431dfb208575438a3acb08c91a42c2a04f1c272 100644
--- a/dumux/material/fluidmatrixinteractions/2p/heatpipelawparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/heatpipelawparams.hh
@@ -35,7 +35,7 @@ template<class ScalarT>
 class HeatPipeLawParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     HeatPipeLawParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh b/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
index c27686b7bfd500a1a33b6207c4cc6e617c7af146..6b4182bad6f813d42240d586e0e6b68f935e7a6c 100644
--- a/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/linearmaterial.hh
@@ -48,8 +48,8 @@ template <class ScalarT, class ParamsT = LinearMaterialParams<ScalarT> >
 class LinearMaterial
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The linear capillary pressure-saturation curve.
diff --git a/dumux/material/fluidmatrixinteractions/2p/linearmaterialparams.hh b/dumux/material/fluidmatrixinteractions/2p/linearmaterialparams.hh
index fe5a10a9d52b05b5263bb5650cbfa0ca46ce9f81..2017eec814f0c6834cc3c367df9a851b5215324f 100644
--- a/dumux/material/fluidmatrixinteractions/2p/linearmaterialparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/linearmaterialparams.hh
@@ -37,7 +37,7 @@ template<class ScalarT>
 class LinearMaterialParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     LinearMaterialParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2p/philtophoblaw.hh b/dumux/material/fluidmatrixinteractions/2p/philtophoblaw.hh
index 1868fe91e68de99ef3074e0f18d155a1b5ee6fb2..95646de0566560d9c8f861b14d12ca0a2e794939 100644
--- a/dumux/material/fluidmatrixinteractions/2p/philtophoblaw.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/philtophoblaw.hh
@@ -82,12 +82,12 @@ namespace Dumux
 template <class EffLawT, class AbsParamsT = EffToAbsLawParams<typename EffLawT::Params> >
 class PhilToPhobLaw : EffToAbsLaw<EffLawT>
 {
-    typedef EffLawT EffLaw;
+    using EffLaw = EffLawT;
 
 public:
-    typedef AbsParamsT Params;
-    typedef typename EffLaw::Scalar Scalar;
-    typedef EffToAbsLaw<EffLawT> ParentType;
+    using Params = AbsParamsT;
+    using Scalar = typename EffLaw::Scalar;
+    using ParentType = EffToAbsLaw<EffLawT>;
     /*!
      * \brief The capillary pressure-saturation curve.
      *
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
index 22bef0057101773ab834f61d41b58be5cd43451d..14ec92423b32e32c2367ad116a91ac05a1ec3ff9 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscorey.hh
@@ -62,11 +62,11 @@ namespace Dumux
 template <class ScalarT, class ParamsT = RegularizedBrooksCoreyParams<ScalarT> >
 class RegularizedBrooksCorey
 {
-    typedef Dumux::BrooksCorey<ScalarT, ParamsT> BrooksCorey;
+    using BrooksCorey = Dumux::BrooksCorey<ScalarT, ParamsT>;
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief A regularized Brooks-Corey capillary pressure-saturation
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscoreyparams.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscoreyparams.hh
index 54ea891c2eb0f92c9d08e01d87ef90b4a5985548..25303244715269818d7d22fb8654864cef08cb3a 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscoreyparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedbrookscoreyparams.hh
@@ -38,10 +38,10 @@ namespace Dumux
 template <class ScalarT>
 class RegularizedBrooksCoreyParams : public BrooksCoreyParams<ScalarT>
 {
-    typedef Dumux::BrooksCoreyParams<ScalarT> BrooksCoreyParams;
+    using BrooksCoreyParams = Dumux::BrooksCoreyParams<ScalarT>;
 
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     RegularizedBrooksCoreyParams()
         : BrooksCoreyParams()
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
index 5947169d7d763b45a2989272ea8a9d10221c9cb6..00b32d7686508e83a22597af439d30e4d8424a99 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterial.hh
@@ -59,11 +59,11 @@ namespace Dumux
 template <class ScalarT, class ParamsT = RegularizedLinearMaterialParams<ScalarT> >
 class RegularizedLinearMaterial
 {
-    typedef Dumux::LinearMaterial<ScalarT, ParamsT> LinearMaterial;
+    using LinearMaterial = Dumux::LinearMaterial<ScalarT, ParamsT>;
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The linear capillary pressure-saturation curve.
@@ -188,14 +188,14 @@ private:
             return 0;
         // check wether the permeability needs to be regularized
         else if (S < lowS) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(0, lowS,
                       0, lowS/2,
                       0, m);
             return sp.eval(S);
         }
         else if (S > highS) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(highS, 1,
                       1 - (1 - highS)/2, 1,
                       m, 0);
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterialparams.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterialparams.hh
index 7d544aae9949812feb58887f709d44c9ccc52920..d63e80eb01ed28a1e03b9e5cbd021a8f391f14d1 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterialparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedlinearmaterialparams.hh
@@ -40,7 +40,7 @@ template<class ScalarT>
 class RegularizedLinearMaterialParams : public LinearMaterialParams<ScalarT>
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     RegularizedLinearMaterialParams()
     {
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
index d8f552d806d4ca54bf44ea4fd121d67575f3182e..dbb07a8a41a853d48b4ae2d93b28eda426bc7e88 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchten.hh
@@ -71,11 +71,11 @@ namespace Dumux
 template <class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT> >
 class RegularizedVanGenuchten
 {
-    typedef Dumux::VanGenuchten<ScalarT, ParamsT> VanGenuchten;
+    using VanGenuchten = Dumux::VanGenuchten<ScalarT, ParamsT>;
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief A regularized van Genuchten capillary pressure-saturation
@@ -316,7 +316,7 @@ public:
         else if (swe > 1 - std::numeric_limits<Scalar>::epsilon())
             return 1;
         else if (swe > swThHigh) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(swThHigh, 1.0, // x1, x2
                       VanGenuchten::krw(params, swThHigh), 1.0, // y1, y2
                       VanGenuchten::dkrw_dswe(params, swThHigh), 0); // m1, m2
@@ -350,7 +350,7 @@ public:
             return 0.0;
         }
         else if (swe > swThHigh) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(swThHigh, 1.0, // x1, x2
                       VanGenuchten::krw(params, swThHigh), 1.0, // y1, y2
                       VanGenuchten::dkrw_dswe(params, swThHigh), 0); // m1, m2
@@ -386,7 +386,7 @@ public:
         else if (swe >= 1)
             return 0;
         else if (swe < swThLow) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(0.0, swThLow, // x1, x2
                       1.0, VanGenuchten::krn(params, swThLow), // y1, y2
                       0.0, VanGenuchten::dkrn_dswe(params, swThLow)); // m1, m2
@@ -415,7 +415,7 @@ public:
         else if (swe >= 1)
             return 0.0;
         else if (swe < swThLow) {
-            typedef Dumux::Spline<Scalar> Spline;
+            using Spline = Dumux::Spline<Scalar>;
             Spline sp(0.0, swThLow, // x1, x2
                       1.0, VanGenuchten::krn(params, swThLow), // y1, y2
                       0.0, VanGenuchten::dkrn_dswe(params, swThLow)); // m1, m2
diff --git a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchtenparams.hh b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchtenparams.hh
index 6eab69b545029a516627cff02feecd9ab68e027a..69e538e3017b4462739f298f900798b2cd4566ac 100644
--- a/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchtenparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/regularizedvangenuchtenparams.hh
@@ -42,8 +42,8 @@ template<class ScalarT>
 class RegularizedVanGenuchtenParams : public VanGenuchtenParams<ScalarT>
 {
 public:
-    typedef ScalarT Scalar;
-    typedef VanGenuchtenParams<Scalar> Parent;
+    using Scalar = ScalarT;
+    using Parent = VanGenuchtenParams<Scalar>;
 
     RegularizedVanGenuchtenParams()
     {
diff --git a/dumux/material/fluidmatrixinteractions/2p/thermalconductivitysimplefluidlumping.hh b/dumux/material/fluidmatrixinteractions/2p/thermalconductivitysimplefluidlumping.hh
index 4b5b7be02532662f557c4f2091e68f43be5748ac..70893500fdce1ce723fee01cb4177a69cff0969e 100644
--- a/dumux/material/fluidmatrixinteractions/2p/thermalconductivitysimplefluidlumping.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/thermalconductivitysimplefluidlumping.hh
@@ -38,8 +38,8 @@ namespace Dumux
 template<class TypeTag>
 class ThermalConductivitySimpleFluidLumping
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum { numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations)};
 
 
diff --git a/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh b/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
index ffe43ef4b63fc5d277bdd2e8352b5478470d50e7..78abc5ccb89276c3496905d26c7d9a5f5a409ff8 100644
--- a/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/vangenuchten.hh
@@ -49,8 +49,8 @@ template <class ScalarT, class ParamsT = VanGenuchtenParams<ScalarT> >
 class VanGenuchten
 {
 public:
-    typedef ParamsT     Params;
-    typedef typename    Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve according to van Genuchten.
diff --git a/dumux/material/fluidmatrixinteractions/2p/vangenuchtenoftemperature.hh b/dumux/material/fluidmatrixinteractions/2p/vangenuchtenoftemperature.hh
index ed2de421d4ff4eec6724600d5e70b4d0c47ad6f9..247416e14d8cb45f324c9c5732d6240bfba56ce9 100644
--- a/dumux/material/fluidmatrixinteractions/2p/vangenuchtenoftemperature.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/vangenuchtenoftemperature.hh
@@ -42,12 +42,12 @@ namespace Dumux
 template <class ScalarT, class ParamsT = RegularizedVanGenuchtenParams<ScalarT> >
 class RegularizedVanGenuchtenOfTemperature : public RegularizedVanGenuchten<ScalarT, ParamsT>
 {
-    typedef Dumux::RegularizedVanGenuchten<ScalarT, ParamsT> RegularizedVanGenuchten;
+    using RegularizedVanGenuchten = Dumux::RegularizedVanGenuchten<ScalarT, ParamsT>;
     // Data is in /home/pnuske/paper/pcOfT/
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief A regularized van Genuchten capillary pressure-saturation
diff --git a/dumux/material/fluidmatrixinteractions/2p/vangenuchtenparams.hh b/dumux/material/fluidmatrixinteractions/2p/vangenuchtenparams.hh
index d37ea688ecc3ee9b25f7907fc2da313d02241973..8622feafc3eb53abee5d06f93c51abfec663931b 100644
--- a/dumux/material/fluidmatrixinteractions/2p/vangenuchtenparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2p/vangenuchtenparams.hh
@@ -41,7 +41,7 @@ template<class ScalarT>
 class VanGenuchtenParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     VanGenuchtenParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfct.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfct.hh
index 31772f480bb6f708cc3844f6a8395619dc2ea307..152a68bdccd94a45af7120c739ad2bd8c6516313 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfct.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfct.hh
@@ -45,8 +45,8 @@ template <class ParamsT>
 class AwnSurfaceExpFct
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The interfacial area surface
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfctparams.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfctparams.hh
index 35ce4069138cb454350f783ef84b5af7b950b47f..6416f1fe9d8148b7e66ba96d690de3236b7098d7 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfctparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpfctparams.hh
@@ -32,7 +32,7 @@ template<class ScalarT>
 class AwnSurfaceExpFctParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     AwnSurfaceExpFctParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3.hh
index a515ee0961c573ba2924fd4db8edb5ef4cca193e..33db148e96df79cbff7e7767e47b2c0e564f0017 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3.hh
@@ -45,8 +45,8 @@ template <class ScalarT, class ParamsT =AwnSurfaceExpSwPcTo3Params<ScalarT> >
 class AwnSurfaceExpSwPcTo3
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The awn surface
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3params.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3params.hh
index e4d672d3921010a097e8b8af994a20313f99fc24..948d336cbbc4112f905fab684c8ed29f1e8f3f04 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3params.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfaceexpswpcto3params.hh
@@ -32,7 +32,7 @@ template<class ScalarT>
 class AwnSurfaceExpSwPcTo3Params
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     AwnSurfaceExpSwPcTo3Params()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfct.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfct.hh
index 02af8986a8e1d16345cc58beb10b741abf89ac18..880e513a1185a610c40a6cf81937df41c80f4ef8 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfct.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfct.hh
@@ -46,8 +46,8 @@ template <class ScalarT, class ParamsT =AwnSurfacePcMaxFctParams<ScalarT> >
 class AwnSurfacePcMaxFct
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The awn surface
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfctparams.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfctparams.hh
index cb99f40679ff93ff98ce4b59f43e03bee5f03960..3b23dfc7b0b50fbbf3ed406a34ee2acab727a642 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfctparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepcmaxfctparams.hh
@@ -32,7 +32,7 @@ template<class ScalarT>
 class AwnSurfacePcMaxFctParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     AwnSurfacePcMaxFctParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorder.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorder.hh
index d98959920ed0c24279c3506cc4237fdf9e424956..091bde0df35795c55bcb58ff9dcb0edeba87be65 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorder.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorder.hh
@@ -46,8 +46,8 @@ template <class ScalarT, class ParamsT = AwnSurfacePolynomial2ndOrderParams<Scal
 class AwnSurfacePolynomial2ndOrder
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The awn surface
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorderparams.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorderparams.hh
index 2b16e4c8c88e5217c2a82e50fe3196dfcdae5ec1..a38ba9394e71b201d19d276d1f883d5240afb926 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorderparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomial2ndorderparams.hh
@@ -32,7 +32,7 @@ template<class ScalarT>
 class AwnSurfacePolynomial2ndOrderParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     AwnSurfacePolynomial2ndOrderParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorder.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorder.hh
index 18da6b48b0131641a125c4f4e8437043f8363dce..6ba288dd5836a8ae4e7c9061e4d521fbe223ad98 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorder.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorder.hh
@@ -45,8 +45,8 @@ template <class ParamsT>
 class AwnSurfacePolynomialEdgeZero2ndOrder
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The awn surface
diff --git a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorderparams.hh b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorderparams.hh
index d529dbcd2b7ffb7fb69a11148f057354b29a3ca6..387e63c17694349705ccdeca83e3283e0c184f2d 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorderparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/awnsurfacepolynomialedgezero2ndorderparams.hh
@@ -38,7 +38,7 @@ template<class ScalarT>
 class AwnSurfacePolynomialEdgeZero2ndOrderParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     AwnSurfacePolynomialEdgeZero2ndOrderParams()
     {}
diff --git a/dumux/material/fluidmatrixinteractions/2pia/efftoabslawia.hh b/dumux/material/fluidmatrixinteractions/2pia/efftoabslawia.hh
index ba97f918fa64642e41f0de2252b9bc68df3139f3..e813359daf8e73867e5a304500879a7ed3247f6f 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/efftoabslawia.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/efftoabslawia.hh
@@ -63,12 +63,12 @@ template <class EffLawIAT,
           class InterfacialAreaAbsParamsT = typename EffLawIAT::Params>
 class EffToAbsLawIA
 {
-    typedef EffLawIAT EffLawIA;
-    typedef MaterialAbsParamsT MaterialParams;
+    using EffLawIA = EffLawIAT;
+    using MaterialParams = MaterialAbsParamsT;
 
 public:
-    typedef InterfacialAreaAbsParamsT Params;
-    typedef typename MaterialParams::Scalar Scalar;
+    using Params = InterfacialAreaAbsParamsT;
+    using Scalar = typename MaterialParams::Scalar;
 
     /*!
      * \brief The interfacial area relation
diff --git a/dumux/material/fluidmatrixinteractions/2pia/efftoabslawiaparams.hh b/dumux/material/fluidmatrixinteractions/2pia/efftoabslawiaparams.hh
index d54be2b987ba7d1b92767e520e1172755255179a..1fe5bd3e6f7c1e0ce642a45ec0e39e6859e215c4 100644
--- a/dumux/material/fluidmatrixinteractions/2pia/efftoabslawiaparams.hh
+++ b/dumux/material/fluidmatrixinteractions/2pia/efftoabslawiaparams.hh
@@ -38,9 +38,9 @@ namespace Dumux
 template <class EffIALawParamsT>
 class EffToAbsLawIAParams : public EffIALawParamsT
 {
-    typedef EffIALawParamsT EffIALawParams;
+    using EffIALawParams = EffIALawParamsT;
 public:
-    typedef typename EffIALawParams::Scalar Scalar;
+    using Scalar = typename EffIALawParams::Scalar;
 
     EffToAbsLawIAParams()
         : EffIALawParams()
diff --git a/dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh b/dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh
index 3cead47de0fb5303c9c3296083a03eb6143f1756..00f454e5eafaf1448c0f9d056b914b2e309dac1c 100644
--- a/dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/efftoabslaw.hh
@@ -61,11 +61,11 @@ namespace Dumux
 template <class EffLawT, class AbsParamsT = EffToAbsLawParams<typename EffLawT::Params> >
 class EffToAbsLaw
 {
-    typedef EffLawT EffLaw;
+    using EffLaw = EffLawT;
 
 public:
-    typedef AbsParamsT Params;
-    typedef typename EffLaw::Scalar Scalar;
+    using Params = AbsParamsT;
+    using Scalar = typename EffLaw::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve.
diff --git a/dumux/material/fluidmatrixinteractions/3p/efftoabslawparams.hh b/dumux/material/fluidmatrixinteractions/3p/efftoabslawparams.hh
index 17f3bf5d7e9ecc89c97c141dc5db455f41ffdbfe..667d725911789c6d65bc24ea4660ab9a6ebb951a 100644
--- a/dumux/material/fluidmatrixinteractions/3p/efftoabslawparams.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/efftoabslawparams.hh
@@ -38,9 +38,9 @@ namespace Dumux
 template <class EffLawParamsT>
 class EffToAbsLawParams : public EffLawParamsT
 {
-    typedef EffLawParamsT EffLawParams;
+    using EffLawParams = EffLawParamsT;
 public:
-    typedef typename EffLawParams::Scalar Scalar;
+    using Scalar = typename EffLawParams::Scalar;
 
     EffToAbsLawParams()
         : EffLawParams()
diff --git a/dumux/material/fluidmatrixinteractions/3p/parkervangen3p.hh b/dumux/material/fluidmatrixinteractions/3p/parkervangen3p.hh
index 62b3b04a240af50ccc84d8f8cae81f886664dd59..c457074f6934bf2fc33bd80bfee8662f98032a21 100644
--- a/dumux/material/fluidmatrixinteractions/3p/parkervangen3p.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/parkervangen3p.hh
@@ -46,8 +46,8 @@ class ParkerVanGen3P
 {
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief The capillary pressure-saturation curve.
diff --git a/dumux/material/fluidmatrixinteractions/3p/parkervangen3pparams.hh b/dumux/material/fluidmatrixinteractions/3p/parkervangen3pparams.hh
index 40d02a4fa1fa72b32c76e9e6e7446c204f993136..9d6f7dfcb10ea46258aada6a218a90f540d4f774 100644
--- a/dumux/material/fluidmatrixinteractions/3p/parkervangen3pparams.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/parkervangen3pparams.hh
@@ -40,7 +40,7 @@ template<class ScalarT>
 class ParkerVanGen3PParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     ParkerVanGen3PParams()
     {betaGw_ = betaNw_ = betaGn_ = 1.0;}
diff --git a/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3p.hh b/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3p.hh
index d1ccf338296c7a9cdca175b9ed0904df00593ece..a1eecb2246eb0ea8f1d19997eaf663d5ba39825b 100644
--- a/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3p.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3p.hh
@@ -60,11 +60,11 @@ namespace Dumux
 template <class ScalarT, class ParamsT = RegularizedParkerVanGen3PParams<ScalarT> >
 class RegularizedParkerVanGen3P
 {
-    typedef Dumux::ParkerVanGen3P<ScalarT, ParamsT> ParkerVanGen3P;
+    using ParkerVanGen3P = Dumux::ParkerVanGen3P<ScalarT, ParamsT>;
 
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
 
     /*!
      * \brief A regularized Parker- van Genuchten capillary pressure-saturation
diff --git a/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3pparams.hh b/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3pparams.hh
index 7ac4a59326fcc18858900c987284b490e336318b..0c47cd6f255214d913eecef41c9fae29a7ff6822 100644
--- a/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3pparams.hh
+++ b/dumux/material/fluidmatrixinteractions/3p/regularizedparkervangen3pparams.hh
@@ -38,10 +38,10 @@ namespace Dumux
 template <class ScalarT>
 class RegularizedParkerVanGen3PParams : public ParkerVanGen3PParams<ScalarT>
 {
-    typedef Dumux::ParkerVanGen3PParams<ScalarT> ParkerVanGen3PParams;
+    using ParkerVanGen3PParams = Dumux::ParkerVanGen3PParams<ScalarT>;
 
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
 
     RegularizedParkerVanGen3PParams()
         : ParkerVanGen3PParams(), constRegularization_(false)
diff --git a/dumux/material/fluidmatrixinteractions/mp/2padapter.hh b/dumux/material/fluidmatrixinteractions/mp/2padapter.hh
index 6a3d0721913674d6d5f018b7f231651d176f8236..919cd8942ce14543520f4ae73a6d9c4225460ffc 100644
--- a/dumux/material/fluidmatrixinteractions/mp/2padapter.hh
+++ b/dumux/material/fluidmatrixinteractions/mp/2padapter.hh
@@ -47,7 +47,7 @@ class TwoPAdapter
     enum { nPhaseIdx = (wPhaseIdx == 0)?1:0 };
 
 public:
-    typedef typename TwoPLaw::Params Params;
+    using Params = typename TwoPLaw::Params;
     enum { numPhases = 2 };
 
     /*!
diff --git a/dumux/material/fluidmatrixinteractions/mp/2poftadapter.hh b/dumux/material/fluidmatrixinteractions/mp/2poftadapter.hh
index c51d211e4d14defe6c241298cf336242ba653c21..ce8bda5e09153c626a87d3725085564767f03804 100644
--- a/dumux/material/fluidmatrixinteractions/mp/2poftadapter.hh
+++ b/dumux/material/fluidmatrixinteractions/mp/2poftadapter.hh
@@ -44,8 +44,8 @@ class TwoPOfTAdapter
     enum { nPhaseIdx = (wPhaseIdx == 0)?1:0 };
 
 public:
-    typedef typename TwoPLaw::Params Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = typename TwoPLaw::Params;
+    using Scalar = typename Params::Scalar;
     enum { numPhases = 2 };
 
     /*!
diff --git a/dumux/material/fluidmatrixinteractions/mp/mplinearmaterial.hh b/dumux/material/fluidmatrixinteractions/mp/mplinearmaterial.hh
index db7cb5b273c36690409d554258ffc189e92d72cf..69e43fd2bab8ed3cb7e66a1b6d43cc94288811be 100644
--- a/dumux/material/fluidmatrixinteractions/mp/mplinearmaterial.hh
+++ b/dumux/material/fluidmatrixinteractions/mp/mplinearmaterial.hh
@@ -47,8 +47,8 @@ template <int numPhasesV, class ScalarT, class ParamsT = MpLinearMaterialParams<
 class MpLinearMaterial
 {
 public:
-    typedef ParamsT Params;
-    typedef typename Params::Scalar Scalar;
+    using Params = ParamsT;
+    using Scalar = typename Params::Scalar;
     enum { numPhases = numPhasesV };
 
     /*!
diff --git a/dumux/material/fluidmatrixinteractions/mp/mplinearmaterialparams.hh b/dumux/material/fluidmatrixinteractions/mp/mplinearmaterialparams.hh
index ae67b3a00a44e0be9ab7ac638c2b3b92da583fce..f6603af92101f02c6d88dda54c3141253ab3ed3e 100644
--- a/dumux/material/fluidmatrixinteractions/mp/mplinearmaterialparams.hh
+++ b/dumux/material/fluidmatrixinteractions/mp/mplinearmaterialparams.hh
@@ -35,7 +35,7 @@ template<int numPhasesV, class ScalarT>
 class MpLinearMaterialParams
 {
 public:
-    typedef ScalarT Scalar;
+    using Scalar = ScalarT;
     enum { numPhases = numPhasesV };
 
     MpLinearMaterialParams()
diff --git a/dumux/material/fluidstates/2p2c.hh b/dumux/material/fluidstates/2p2c.hh
index 5915a5f42a59f1d6c1e98b997144c55f3f404218..c28847cd58a156818b0a6b5a02e5e4acf30c4244 100644
--- a/dumux/material/fluidstates/2p2c.hh
+++ b/dumux/material/fluidstates/2p2c.hh
@@ -47,7 +47,7 @@ public:
 
     enum {  numPhases = FluidSystem::numPhases,
             numComponents = FluidSystem::numComponents};
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
 
 public:
     /*!
diff --git a/dumux/material/fluidstates/nonequilibriummass.hh b/dumux/material/fluidstates/nonequilibriummass.hh
index 455ce69b7a4ad8e89f36cf29ee7158f4138e4252..f1351c8d0ed3f770e3fcac84be5732a918a8ef9f 100644
--- a/dumux/material/fluidstates/nonequilibriummass.hh
+++ b/dumux/material/fluidstates/nonequilibriummass.hh
@@ -51,7 +51,7 @@ class NonEquilibriumMassFluidState
 : public NonEquilibriumFluidState<Scalar, FluidSystem>
 {
     public:
-        typedef NonEquilibriumFluidState<Scalar, FluidSystem> ParentType;
+        using ParentType = NonEquilibriumFluidState<Scalar, FluidSystem>;
 
         enum { numPhases       = FluidSystem::numPhases };
         enum { numComponents   = FluidSystem::numComponents };
diff --git a/dumux/material/fluidsystems/1p.hh b/dumux/material/fluidsystems/1p.hh
index bf774b9ca2273a90a80b007a6fe9cd216daddc4b..a476c59b9d836486b1592722945f48a61bfd532a 100644
--- a/dumux/material/fluidsystems/1p.hh
+++ b/dumux/material/fluidsystems/1p.hh
@@ -47,8 +47,8 @@ template <class Scalar, class FluidType>
 class OneP
     : public BaseFluidSystem<Scalar, OneP<Scalar, FluidType> >
 {
-    typedef OneP<Scalar, FluidType> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = OneP<Scalar, FluidType>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
     using Fluid = FluidType;
diff --git a/dumux/material/fluidsystems/2pimmiscible.hh b/dumux/material/fluidsystems/2pimmiscible.hh
index 313f3de3e11f70565c2bf82fc58f404e0cd552a9..b89d89ba1505407289399a72f4cf536ff4433727 100644
--- a/dumux/material/fluidsystems/2pimmiscible.hh
+++ b/dumux/material/fluidsystems/2pimmiscible.hh
@@ -58,8 +58,8 @@ template <class Scalar, class WettingPhase, class NonwettingPhase>
 class TwoPImmiscible
 : public BaseFluidSystem<Scalar, TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase> >
 {
-    typedef TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = TwoPImmiscible<Scalar, WettingPhase, NonwettingPhase>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 public:
     /****************************************
      * Fluid phase related static parameters
diff --git a/dumux/material/fluidsystems/2pliquidvapor.hh b/dumux/material/fluidsystems/2pliquidvapor.hh
index 45b963bce9bb03dfa652c19c20e4f08deaa94b36..05945907c6fba284c49023b5bf57ccbf94789d38 100644
--- a/dumux/material/fluidsystems/2pliquidvapor.hh
+++ b/dumux/material/fluidsystems/2pliquidvapor.hh
@@ -47,9 +47,9 @@ template <class Scalar, class ComponentType>
 class TwoPLiquidVaporFluidsystem
     : public BaseFluidSystem<Scalar, TwoPLiquidVaporFluidsystem<Scalar, ComponentType> >
 {
-    typedef TwoPLiquidVaporFluidsystem<Scalar, ComponentType> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
-    typedef ComponentType Component;
+    using ThisType = TwoPLiquidVaporFluidsystem<Scalar, ComponentType>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
+    using Component = ComponentType;
 
 public:
     /****************************************
diff --git a/dumux/material/fluidsystems/brineair.hh b/dumux/material/fluidsystems/brineair.hh
index 28876066addd20544f7073b1ffd1a73ec6c8b4ff..e87eeee2c6232c7d9d8ef6a304ca2f6e4216f751 100644
--- a/dumux/material/fluidsystems/brineair.hh
+++ b/dumux/material/fluidsystems/brineair.hh
@@ -56,21 +56,21 @@ template <class Scalar,
 class BrineAir
 : public BaseFluidSystem<Scalar, BrineAir<Scalar, H2Otype, useComplexRelations>>
 {
-    typedef BrineAir<Scalar, H2Otype, useComplexRelations> ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using ThisType = BrineAir<Scalar, H2Otype, useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
 
-    typedef H2Otype H2O;
-    typedef BinaryCoeff::H2O_Air H2O_Air;
-    typedef Dumux::Air<Scalar> Air;
-    typedef BinaryCoeff::Brine_Air<Scalar, Air> Brine_Air;
-    typedef Dumux::Brine<Scalar, H2Otype> Brine;
-    typedef Dumux::NaCl<Scalar> NaCl;
+    using H2O = H2Otype;
+    using H2O_Air = BinaryCoeff::H2O_Air;
+    using Air = Dumux::Air<Scalar>;
+    using Brine_Air = BinaryCoeff::Brine_Air<Scalar, Air>;
+    using Brine = Dumux::Brine<Scalar,H2Otype>;
+    using NaCl = Dumux::NaCl<Scalar>;
 
     // the type of parameter cache objects. this fluid system does not
-    typedef NullParameterCache ParameterCache;
+    using ParameterCache = NullParameterCache;
 
     /****************************************
      * Fluid phase related static parameters
diff --git a/dumux/material/fluidsystems/brineco2.hh b/dumux/material/fluidsystems/brineco2.hh
index b2cb44383b63cd2f84c6dd816b0c104c7d387754..e719a8eb42111b866c401647cff5de91bd590431 100644
--- a/dumux/material/fluidsystems/brineco2.hh
+++ b/dumux/material/fluidsystems/brineco2.hh
@@ -54,17 +54,17 @@ template<class Scalar,
 class BrineCO2
 : public BaseFluidSystem<Scalar, BrineCO2<Scalar, CO2Table, H2Otype, BrineRawComponent, Brinetype> >
 {
-    typedef BrineCO2<Scalar, CO2Table, H2Otype, BrineRawComponent, Brinetype> ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
+    using ThisType = BrineCO2<Scalar, CO2Table, H2Otype, BrineRawComponent, Brinetype>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 
-    typedef BinaryCoeff::Brine_CO2<Scalar, CO2Table> Brine_CO2;
+    using Brine_CO2 = BinaryCoeff::Brine_CO2<Scalar, CO2Table>;
 
 public:
-    typedef NullParameterCache ParameterCache;
-    typedef H2Otype H2O;
-    typedef Brinetype Brine;
-    typedef Dumux::CO2<Scalar, CO2Table> CO2;
+    using ParameterCache = NullParameterCache;
+    using H2O = H2Otype;
+    using Brine = Brinetype;
+    using CO2 = Dumux::CO2<Scalar, CO2Table>;
 
     static const int numComponents = 2;
     static const int numPhases = 2;
diff --git a/dumux/material/fluidsystems/gasphase.hh b/dumux/material/fluidsystems/gasphase.hh
index b5e984c4d98d2f9669204e93a438674a1f57e686..aca52f2e9d965a17f3d5fad9cbc068bfe6e73e34 100644
--- a/dumux/material/fluidsystems/gasphase.hh
+++ b/dumux/material/fluidsystems/gasphase.hh
@@ -45,12 +45,12 @@ template <class Scalar, class ComponentT>
 class GasPhase
 : public BaseFluidSystem<Scalar, GasPhase<Scalar, ComponentT> >
 {
-    typedef GasPhase<Scalar, ComponentT> ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
+    using ThisType = GasPhase<Scalar, ComponentT>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    typedef ComponentT Component;
-    typedef NullParameterCache ParameterCache;
+    using Component = ComponentT;
+    using ParameterCache = NullParameterCache;
 
     /****************************************
      * Fluid phase related static parameters
diff --git a/dumux/material/fluidsystems/h2oair.hh b/dumux/material/fluidsystems/h2oair.hh
index eedbe4f06078b9d0c63a1a4425ab8cf20c0361ac..9a8244b9a3dbb13164b7add6d5ba6ea520723904 100644
--- a/dumux/material/fluidsystems/h2oair.hh
+++ b/dumux/material/fluidsystems/h2oair.hh
@@ -58,13 +58,13 @@ template <class Scalar,
 class H2OAir
 : public BaseFluidSystem<Scalar, H2OAir<Scalar, H2Otype, useComplexRelations> >
 {
-    typedef H2OAir<Scalar,H2Otype, useComplexRelations > ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using ThisType = H2OAir<Scalar,H2Otype, useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
-    typedef H2Otype H2O;
-    typedef Dumux::Air<Scalar> Air;
+    using H2O = H2Otype;
+    using Air = Dumux::Air<Scalar>;
 
     static constexpr int numPhases = 2;
 
diff --git a/dumux/material/fluidsystems/h2oairmesitylene.hh b/dumux/material/fluidsystems/h2oairmesitylene.hh
index 8c7e5526602ce674793966e072cb80a078c389d9..8cf02196017efe399bf68492fb26a5c54714ca92 100644
--- a/dumux/material/fluidsystems/h2oairmesitylene.hh
+++ b/dumux/material/fluidsystems/h2oairmesitylene.hh
@@ -53,13 +53,13 @@ template <class Scalar,
 class H2OAirMesitylene
     : public BaseFluidSystem<Scalar, H2OAirMesitylene<Scalar, H2OType> >
 {
-    typedef H2OAirMesitylene<Scalar, H2OType> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = H2OAirMesitylene<Scalar, H2OType>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    typedef Mesitylene<Scalar> NAPL;
-    typedef Dumux::Air<Scalar> Air;
-    typedef H2OType H2O;
+    using NAPL = Mesitylene<Scalar>;
+    using Air = Dumux::Air<Scalar>;
+    using H2O = H2OType;
 
 
     static const int numPhases = 3;
diff --git a/dumux/material/fluidsystems/h2oairxylene.hh b/dumux/material/fluidsystems/h2oairxylene.hh
index c92e849a701635f4bf60adf5c07eb36889e79cd7..a1584aa194ac908f12c34b456470e28b1fb4ea62 100644
--- a/dumux/material/fluidsystems/h2oairxylene.hh
+++ b/dumux/material/fluidsystems/h2oairxylene.hh
@@ -54,13 +54,13 @@ template <class Scalar,
 class H2OAirXylene
     : public BaseFluidSystem<Scalar, H2OAirXylene<Scalar, H2OType> >
 {
-    typedef H2OAirXylene<Scalar, H2OType> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = H2OAirXylene<Scalar, H2OType>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    typedef H2OType H2O;
-    typedef Xylene<Scalar> NAPL;
-    typedef Dumux::Air<Scalar> Air;
+    using H2O = H2OType;
+    using NAPL = Xylene<Scalar>;
+    using Air = Dumux::Air<Scalar>;
 
     static const int numPhases = 3;
     static const int numComponents = 3;
diff --git a/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh b/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
index edca32be94e0296aa722ce3196aabba76e562eee..a6f7b53155cc11a2547a2dac2bb39a0529e1bf40 100644
--- a/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
+++ b/dumux/material/fluidsystems/h2oheavyoilfluidsystem.hh
@@ -48,12 +48,12 @@ template <class Scalar,
 class H2OHeavyOil
     : public BaseFluidSystem<Scalar, H2OHeavyOil<Scalar, H2OType> >
 {
-    typedef H2OHeavyOil<Scalar, H2OType> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = H2OHeavyOil<Scalar, H2OType>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    typedef Dumux::HeavyOil<Scalar> HeavyOil;
-    typedef H2OType H2O;
+    using HeavyOil = Dumux::HeavyOil<Scalar>;
+    using H2O = H2OType;
 
 
     static const int numPhases = 3;
diff --git a/dumux/material/fluidsystems/h2on2.hh b/dumux/material/fluidsystems/h2on2.hh
index 0c7edf1cae23d9d1a036f5023acd81a8fe641e86..e19e92ebb92197d54c43c95aed51b81ef1f6f6a0 100644
--- a/dumux/material/fluidsystems/h2on2.hh
+++ b/dumux/material/fluidsystems/h2on2.hh
@@ -53,10 +53,10 @@ template <class Scalar, bool useComplexRelations = true>
 class H2ON2
     : public BaseFluidSystem<Scalar, H2ON2<Scalar, useComplexRelations> >
 {
-    typedef H2ON2<Scalar, useComplexRelations> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = H2ON2<Scalar, useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
-    // convenience typedefs
+    // convenience using declarations
     using IdealGas = Dumux::IdealGas<Scalar>;
     using TabulatedH2O = TabulatedComponent<Scalar, Dumux::H2O<Scalar> >;
     using SimpleN2 = Dumux::N2<Scalar>;
diff --git a/dumux/material/fluidsystems/h2on2kinetic.hh b/dumux/material/fluidsystems/h2on2kinetic.hh
index f635e7ab172f75b9f766afdad671f3187655478a..cc55843d793fc3d6b1ba2888d7b0b5cae303deda 100644
--- a/dumux/material/fluidsystems/h2on2kinetic.hh
+++ b/dumux/material/fluidsystems/h2on2kinetic.hh
@@ -51,12 +51,12 @@ class H2ON2Kinetic :
     public FluidSystems::H2ON2<Scalar, useComplexRelations>
 {
 private:
-    typedef FluidSystems::H2ON2<Scalar, useComplexRelations> ParentType;
+    using ParentType = FluidSystems::H2ON2<Scalar, useComplexRelations>;
 
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 public:
     //! The type of parameter cache objects
-    typedef NullParameterCache ParameterCache;
+    using ParameterCache = NullParameterCache;
 
     //! Index of the solid phase
     static constexpr int sPhaseIdx = 2;
diff --git a/dumux/material/fluidsystems/h2on2o2.hh b/dumux/material/fluidsystems/h2on2o2.hh
index ce4a524095089cfbae2eb758ba3cd2cf2fc58718..ba3c02997046fb44c63c101406a7272f593d5b4c 100644
--- a/dumux/material/fluidsystems/h2on2o2.hh
+++ b/dumux/material/fluidsystems/h2on2o2.hh
@@ -63,20 +63,20 @@ template <class Scalar, bool useComplexRelations = true>
 class H2ON2O2
     : public BaseFluidSystem<Scalar, H2ON2O2<Scalar, useComplexRelations> >
 {
-    typedef H2ON2O2<Scalar, useComplexRelations> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = H2ON2O2<Scalar, useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
-    typedef Dumux::IdealGas<Scalar> IdealGas;
-    typedef Dumux::Constants<Scalar> Constants;
-    typedef TabulatedComponent<Scalar, Dumux::H2O<Scalar> > TabulatedH2O;
-    typedef Dumux::N2<Scalar> SimpleN2;
-    typedef Dumux::O2<Scalar> O2;
+    using IdealGas = Dumux::IdealGas<Scalar>;
+    using Constants = Dumux::Constants<Scalar>;
+    using TabulatedH2O = TabulatedComponent<Scalar, Dumux::H2O<Scalar> >;
+    using SimpleN2 = Dumux::N2<Scalar>;
+    using O2 = Dumux::O2<Scalar>;
 
     //! The components for pure water
-    typedef TabulatedH2O H2O;
+    using H2O = TabulatedH2O;
 
     //! The components for pure nitrogen
-    typedef SimpleN2 N2;
+    using N2 = SimpleN2;
 
 public:
     /****************************************
diff --git a/dumux/material/fluidsystems/liquidphase.hh b/dumux/material/fluidsystems/liquidphase.hh
index d5c699b39e326d6db3b33b278aabd534610e8852..e2f7dade20156201fa9360764f380b90f6c3d481 100644
--- a/dumux/material/fluidsystems/liquidphase.hh
+++ b/dumux/material/fluidsystems/liquidphase.hh
@@ -44,12 +44,12 @@ template <class Scalar, class ComponentT>
 class LiquidPhase
 : public BaseFluidSystem<Scalar, LiquidPhase<Scalar, ComponentT> >
 {
-    typedef LiquidPhase<Scalar, ComponentT> ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
+    using ThisType = LiquidPhase<Scalar, ComponentT>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
 public:
-    typedef ComponentT Component;
-    typedef NullParameterCache ParameterCache;
+    using Component = ComponentT;
+    using ParameterCache = NullParameterCache;
 
     /****************************************
      * Fluid phase related static parameters
diff --git a/dumux/material/fluidsystems/purewatersimple.hh b/dumux/material/fluidsystems/purewatersimple.hh
index ef11bd911ab3909edcb772a1978484e19aa22a55..8ce1e38ddad28c42ffa02236d29b1e6404b89d5c 100644
--- a/dumux/material/fluidsystems/purewatersimple.hh
+++ b/dumux/material/fluidsystems/purewatersimple.hh
@@ -49,13 +49,13 @@ template <class Scalar, bool useComplexRelations = false>
 class PureWaterSimpleFluidSystem
     : public BaseFluidSystem<Scalar, PureWaterSimpleFluidSystem<Scalar, useComplexRelations> >
 {
-    typedef PureWaterSimpleFluidSystem<Scalar, useComplexRelations> ThisType;
-    typedef BaseFluidSystem<Scalar, ThisType> Base;
+    using ThisType = PureWaterSimpleFluidSystem<Scalar, useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
-    // convenience typedefs
-    typedef Dumux::IdealGas<Scalar> IdealGas;
-    typedef Dumux::SimpleH2O<Scalar> SimpleH2O;
-    typedef Dumux::N2<Scalar> SimpleN2;
+    // convenience using declarations
+    using IdealGas = Dumux::IdealGas<Scalar>;
+    using SimpleH2O = Dumux::SimpleH2O<Scalar>;
+    using SimpleN2 = Dumux::N2<Scalar>;
 
 public:
     /****************************************
@@ -172,10 +172,10 @@ public:
     static constexpr int N2Idx = nCompIdx;
 
     //! The components for pure water
-    typedef SimpleH2O H2O;
+    using H2O = SimpleH2O;
 
     //! The components for pure nitrogen
-    typedef SimpleN2 N2;
+    using N2 = SimpleN2;
 
     /*!
      * \brief Return the human readable name of a component
diff --git a/dumux/material/fluidsystems/simplesteamaircao2h2.hh b/dumux/material/fluidsystems/simplesteamaircao2h2.hh
index 10b81237641cab7696c73ad30aa868692145ea2a..61494920870ecbd21e6ced655c5d903350b0b7b4 100644
--- a/dumux/material/fluidsystems/simplesteamaircao2h2.hh
+++ b/dumux/material/fluidsystems/simplesteamaircao2h2.hh
@@ -55,22 +55,22 @@ template <class Scalar, bool useComplexRelations=true>
 class SteamAirCaO2H2
 : public BaseFluidSystem<Scalar, SteamAirCaO2H2<Scalar, /*H2Otype,*/ useComplexRelations> >
 {
-    typedef SteamAirCaO2H2<Scalar, /*H2Otype,*/ useComplexRelations> ThisType;
-    typedef BaseFluidSystem <Scalar, ThisType> Base;
+    using ThisType = SteamAirCaO2H2<Scalar, /*H2Otype,*/ useComplexRelations>;
+    using Base = BaseFluidSystem<Scalar, ThisType>;
 
-    typedef Dumux::IdealGas<Scalar> IdealGas;
+    using IdealGas = Dumux::IdealGas<Scalar>;
 
 public:
-    typedef Dumux::SimpleH2O<Scalar> H2O;
-//     typedef H2Otype H2O;
-    typedef Dumux::BinaryCoeff::H2O_Air H2O_Air;
-    typedef Dumux::Air<Scalar> Air;
+    using H2O = Dumux::SimpleH2O<Scalar>;
+//     using H2O = H2Otype;
+    using H2O_Air = Dumux::BinaryCoeff::H2O_Air;
+    using Air = Dumux::Air<Scalar>;
 
-    typedef Dumux::CaO<Scalar> CaO;
-    typedef Dumux::CaO2H2<Scalar> CaO2H2;
+    using CaO = Dumux::CaO<Scalar>;
+    using CaO2H2 = Dumux::CaO2H2<Scalar>;
 
     // the type of parameter cache objects. this fluid system does not
-    typedef Dumux::NullParameterCache ParameterCache;
+    using ParameterCache = Dumux::NullParameterCache;
 
     /****************************************
      * Fluid phase related static parameters
diff --git a/dumux/material/fluidsystems/spe5.hh b/dumux/material/fluidsystems/spe5.hh
index 606067e5e9ccd836ff2b4736d8fd4f12b80a963c..d41ce9fd12b3b986e2f0fef3271a9a85ff741501 100644
--- a/dumux/material/fluidsystems/spe5.hh
+++ b/dumux/material/fluidsystems/spe5.hh
@@ -55,13 +55,13 @@ namespace FluidSystems
 template <class Scalar>
 class Spe5
 {
-    typedef FluidSystems::Spe5<Scalar> ThisType;
+    using ThisType = FluidSystems::Spe5<Scalar>;
 
-    typedef Dumux::PengRobinsonMixture<Scalar, ThisType> PengRobinsonMixture;
-    typedef Dumux::PengRobinson<Scalar> PengRobinson;
+    using PengRobinsonMixture = Dumux::PengRobinsonMixture<Scalar, ThisType>;
+    using PengRobinson = Dumux::PengRobinson<Scalar>;
 
 public:
-    typedef Spe5ParameterCache<Scalar, ThisType> ParameterCache;
+    using ParameterCache = Spe5ParameterCache<Scalar, ThisType>;
 
     /****************************************
      * Fluid phase parameters
@@ -78,7 +78,7 @@ public:
     static const int oPhaseIdx = 2;
 
     //! The component for pure water to be used
-    typedef Dumux::H2O<Scalar> H2O;
+    using H2O = Dumux::H2O<Scalar>;
 
     /*!
      * \brief Return the human readable name of a fluid phase
diff --git a/dumux/material/fluidsystems/spe5parametercache.hh b/dumux/material/fluidsystems/spe5parametercache.hh
index 51f0edd94b096254301cf36a566ba6bec36c3405..1abf914531df2243e0c8122542241ad6db26288c 100644
--- a/dumux/material/fluidsystems/spe5parametercache.hh
+++ b/dumux/material/fluidsystems/spe5parametercache.hh
@@ -44,10 +44,10 @@ template <class Scalar, class FluidSystem>
 class Spe5ParameterCache
     : public ParameterCacheBase<Spe5ParameterCache<Scalar, FluidSystem> >
 {
-    typedef Spe5ParameterCache<Scalar, FluidSystem> ThisType;
-    typedef ParameterCacheBase<ThisType> ParentType;
+    using ThisType = Spe5ParameterCache<Scalar, FluidSystem>;
+    using ParentType = ParameterCacheBase<ThisType>;
 
-    typedef Dumux::PengRobinson<Scalar> PengRobinson;
+    using PengRobinson = Dumux::PengRobinson<Scalar>;
 
     enum { numPhases = FluidSystem::numPhases };
 
@@ -57,8 +57,8 @@ class Spe5ParameterCache
 
 public:
     // types of the parameter objects for each phase
-    typedef PengRobinsonParamsMixture<Scalar, FluidSystem, oPhaseIdx, /*useSpe5=*/true> OilPhaseParams;
-    typedef PengRobinsonParamsMixture<Scalar, FluidSystem, gPhaseIdx, /*useSpe5=*/true> GasPhaseParams;
+    using OilPhaseParams = PengRobinsonParamsMixture<Scalar, FluidSystem, oPhaseIdx, /*useSpe5=*/true>;
+    using GasPhaseParams = PengRobinsonParamsMixture<Scalar, FluidSystem, gPhaseIdx, /*useSpe5=*/true>;
 
     /*!
      * \brief The constructor
diff --git a/dumux/material/spatialparams/fv.hh b/dumux/material/spatialparams/fv.hh
index a78c43b7bedbd297d3ac133b8a4208a507761246..b0e710206108c9239e8c58f03d08e410e60f506f 100644
--- a/dumux/material/spatialparams/fv.hh
+++ b/dumux/material/spatialparams/fv.hh
@@ -26,6 +26,7 @@
 #ifndef DUMUX_FV_SPATIAL_PARAMS_HH
 #define DUMUX_FV_SPATIAL_PARAMS_HH
 
+#include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
 #include "fv1p.hh"
 
@@ -43,19 +44,15 @@ namespace Dumux {
 template<class TypeTag>
 class FVSpatialParams: public FVSpatialParamsOneP<TypeTag>
 {
-    using Implementation = typename GET_PROP_TYPE(TypeTag, SpatialParams);
-
     using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
     using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume);
     using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
     using ElementSolutionVector = typename GET_PROP_TYPE(TypeTag, ElementSolutionVector);
-
-    using CoordScalar = typename GridView::ctype;
     using Element = typename GridView::template Codim<0>::Entity;
 
     static const int dimWorld = GridView::dimensionworld;
-    using GlobalPosition = Dune::FieldVector<CoordScalar,dimWorld>;
+    using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>;
 
 public:
     FVSpatialParams(const Problem& problem)
diff --git a/dumux/material/spatialparams/fv1p.hh b/dumux/material/spatialparams/fv1p.hh
index 95117999c3a0dc42d0ca8c170c74d255dce830d3..b5d73a51a431ca773f1ae7805ca442cd4250a5f4 100644
--- a/dumux/material/spatialparams/fv1p.hh
+++ b/dumux/material/spatialparams/fv1p.hh
@@ -26,6 +26,7 @@
 #ifndef DUMUX_FV_SPATIAL_PARAMS_ONE_P_HH
 #define DUMUX_FV_SPATIAL_PARAMS_ONE_P_HH
 
+#include <dune/common/exceptions.hh>
 #include <dumux/common/properties.hh>
 #include <dumux/common/parameters.hh>
 #include <dumux/common/math.hh>
@@ -52,25 +53,18 @@ class FVSpatialParamsOneP
     using SubControlVolume = typename GET_PROP_TYPE(TypeTag, SubControlVolume);
     using SubControlVolumeFace = typename GET_PROP_TYPE(TypeTag, SubControlVolumeFace);
     using ElementSolutionVector = typename GET_PROP_TYPE(TypeTag, ElementSolutionVector);
-
     using Element = typename GridView::template Codim<0>::Entity;
-    using CoordScalar = typename GridView::ctype;
 
-    static const int dim = GridView::dimension;
-    static const int dimWorld = GridView::dimensionworld;
+    enum { dim = GridView::dimension };
+    enum { dimWorld = GridView::dimensionworld };
     using DimWorldMatrix = Dune::FieldMatrix<Scalar, dimWorld, dimWorld>;
-    using GlobalPosition = Dune::FieldVector<CoordScalar,dimWorld>;
+    using GlobalPosition = Dune::FieldVector<typename GridView::ctype, dimWorld>;
 
 public:
     FVSpatialParamsOneP(const Problem& problem)
     : problemPtr_(&problem)
     {}
 
-    /*!
-     * \brief Called by the Problem to initialize the spatial params.
-     */
-    void init() {}
-
     /*!
      * \brief Harmonic average of a discontinuous scalar field at discontinuity interface
      *        (for compatibility reasons with the function below)
diff --git a/dumux/mixeddimension/embedded/cellcentered/pointsourcedata.hh b/dumux/mixeddimension/embedded/cellcentered/pointsourcedata.hh
index d66a700c9e7b7d2d86157c8157df66bf61cd7136..f0dd5ad8d1efc163a6fd947accb80ca9883d57cb 100644
--- a/dumux/mixeddimension/embedded/cellcentered/pointsourcedata.hh
+++ b/dumux/mixeddimension/embedded/cellcentered/pointsourcedata.hh
@@ -46,18 +46,18 @@ NEW_PROP_TAG(PrimaryVariables);
 template<class TypeTag>
 class PointSourceData
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename std::vector<Dune::FieldVector<Scalar, 1> > ShapeValues;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using ShapeValues = typename std::vector<Dune::FieldVector<Scalar, 1> >;
 
     // obtain the type tags of the sub problems
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, PrimaryVariables) BulkPrimaryVariables;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, PrimaryVariables) LowDimPrimaryVariables;
+    using BulkPrimaryVariables = typename GET_PROP_TYPE(BulkProblemTypeTag, PrimaryVariables);
+    using LowDimPrimaryVariables = typename GET_PROP_TYPE(LowDimProblemTypeTag, PrimaryVariables);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector) BulkSolutionVector;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector) LowDimSolutionVector;
+    using BulkSolutionVector = typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector);
+    using LowDimSolutionVector = typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector);
 
     enum {
         bulkIsBox = GET_PROP_VALUE(BulkProblemTypeTag, ImplicitIsBox),
@@ -153,18 +153,18 @@ template<class TypeTag>
 class PointSourceDataCircleAverage : public PointSourceData<TypeTag>
 {
     using ParentType = PointSourceData<TypeTag>;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename std::vector<Dune::FieldVector<Scalar, 1> > ShapeValues;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using ShapeValues = typename std::vector<Dune::FieldVector<Scalar, 1> >;
 
     // obtain the type tags of the sub problems
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, PrimaryVariables) BulkPrimaryVariables;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, PrimaryVariables) LowDimPrimaryVariables;
+    using BulkPrimaryVariables = typename GET_PROP_TYPE(BulkProblemTypeTag, PrimaryVariables);
+    using LowDimPrimaryVariables = typename GET_PROP_TYPE(LowDimProblemTypeTag, PrimaryVariables);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector) BulkSolutionVector;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector) LowDimSolutionVector;
+    using BulkSolutionVector = typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector);
+    using LowDimSolutionVector = typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector);
 
     enum {
         bulkIsBox = GET_PROP_VALUE(BulkProblemTypeTag, ImplicitIsBox),
diff --git a/dumux/mixeddimension/integrationpointsource.hh b/dumux/mixeddimension/integrationpointsource.hh
index 74682cbef40b508db54d159f6d6042fa9abec546..ecc268ba30e2cbb92f42a4f773de9b9d4722754f 100644
--- a/dumux/mixeddimension/integrationpointsource.hh
+++ b/dumux/mixeddimension/integrationpointsource.hh
@@ -40,13 +40,13 @@ namespace Dumux
 template<class TypeTag, typename IdType>
 class IntegrationPointSource : public Dumux::IdPointSource<TypeTag, IdType>
 {
-    typedef typename Dumux::IdPointSource<TypeTag, IdType> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using ParentType = Dumux::IdPointSource<TypeTag, IdType>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     static const int dimworld = GridView::dimensionworld;
-    typedef typename Dune::FieldVector<Scalar, dimworld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimworld>;
 
 public:
     //! Constructor for integration point sources
@@ -109,15 +109,15 @@ private:
 template<class TypeTag>
 class IntegrationPointSourceHelper
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, PointSource) PointSource;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using PointSource = typename GET_PROP_TYPE(TypeTag, PointSource);
 
     static const int dim = GridView::dimension;
     static const int dimworld = GridView::dimensionworld;
 
-    typedef Dumux::BoundingBoxTree<GridView> BoundingBoxTree;
+    using BoundingBoxTree = Dumux::BoundingBoxTree<GridView>;
 
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
     enum { dofCodim = isBox ? dim : 0 };
diff --git a/dumux/mixeddimension/model.hh b/dumux/mixeddimension/model.hh
index 4b5c109636005724254388047f4a1c76ee163589..bc806d13932eeb884937867d1c09e1f75e1a70f9 100644
--- a/dumux/mixeddimension/model.hh
+++ b/dumux/mixeddimension/model.hh
@@ -44,32 +44,32 @@ namespace Dumux
 template<class TypeTag>
 class MixedDimensionModel
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Model) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, JacobianAssembler) JacobianAssembler;
-    typedef typename GET_PROP_TYPE(TypeTag, BulkLocalJacobian) BulkLocalJacobian;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimLocalJacobian) LowDimLocalJacobian;
-    typedef typename GET_PROP_TYPE(TypeTag, NewtonMethod) NewtonMethod;
-    typedef typename GET_PROP_TYPE(TypeTag, NewtonController) NewtonController;
-    typedef typename GET_PROP(TypeTag, SubProblemBlockIndices) SubProblemBlockIndices;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Model);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using JacobianAssembler = typename GET_PROP_TYPE(TypeTag, JacobianAssembler);
+    using BulkLocalJacobian = typename GET_PROP_TYPE(TypeTag, BulkLocalJacobian);
+    using LowDimLocalJacobian = typename GET_PROP_TYPE(TypeTag, LowDimLocalJacobian);
+    using NewtonMethod = typename GET_PROP_TYPE(TypeTag, NewtonMethod);
+    using NewtonController = typename GET_PROP_TYPE(TypeTag, NewtonController);
+    using SubProblemBlockIndices = typename GET_PROP(TypeTag, SubProblemBlockIndices);
 
     // obtain the type tags of the sub problems
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, GridView) BulkGridView;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, GridView) LowDimGridView;
+    using BulkGridView = typename GET_PROP_TYPE(BulkProblemTypeTag, GridView);
+    using LowDimGridView = typename GET_PROP_TYPE(LowDimProblemTypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, LocalResidual) BulkLocalResidual;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, LocalResidual) LowDimLocalResidual;
+    using BulkLocalResidual = typename GET_PROP_TYPE(BulkProblemTypeTag, LocalResidual);
+    using LowDimLocalResidual = typename GET_PROP_TYPE(LowDimProblemTypeTag, LocalResidual);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, VertexMapper) BulkVertexMapper;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, VertexMapper) LowDimVertexMapper;
+    using BulkVertexMapper = typename GET_PROP_TYPE(BulkProblemTypeTag, VertexMapper);
+    using LowDimVertexMapper = typename GET_PROP_TYPE(LowDimProblemTypeTag, VertexMapper);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, ElementMapper) BulkElementMapper;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, ElementMapper) LowDimElementMapper;
+    using BulkElementMapper = typename GET_PROP_TYPE(BulkProblemTypeTag, ElementMapper);
+    using LowDimElementMapper = typename GET_PROP_TYPE(LowDimProblemTypeTag, ElementMapper);
 
     enum {
         bulkDim = BulkGridView::dimension,
@@ -87,11 +87,11 @@ class MixedDimensionModel
     typename SubProblemBlockIndices::BulkIdx bulkIdx;
     typename SubProblemBlockIndices::LowDimIdx lowDimIdx;
 
-    typedef typename BulkGridView::template Codim<0>::Entity BulkElement;
-    typedef typename LowDimGridView::template Codim<0>::Entity LowDimElement;
+    using BulkElement = typename BulkGridView::template Codim<0>::Entity;
+    using LowDimElement = typename LowDimGridView::template Codim<0>::Entity;
 
-    typedef typename Dune::ReferenceElements<Scalar, bulkDim> BulkReferenceElements;
-    typedef typename Dune::ReferenceElements<Scalar, lowDimDim> LowDimReferenceElements;
+    using BulkReferenceElements = Dune::ReferenceElements<Scalar, bulkDim>;
+    using LowDimReferenceElements = Dune::ReferenceElements<Scalar, lowDimDim>;
 
 public:
      // copying a model is not a good idea
diff --git a/dumux/mixeddimension/problem.hh b/dumux/mixeddimension/problem.hh
index 7249d139aaeaab777420015de343a9e650ad6516..d3dc407a734c8ccefc3dc848540fa1d36371f385 100644
--- a/dumux/mixeddimension/problem.hh
+++ b/dumux/mixeddimension/problem.hh
@@ -41,30 +41,30 @@ namespace Dumux
 template<class TypeTag>
 class MixedDimensionProblem
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, CouplingManager) CouplingManager;
-    typedef typename GET_PROP_TYPE(TypeTag, NewtonMethod) NewtonMethod;
-    typedef typename GET_PROP_TYPE(TypeTag, NewtonController) NewtonController;
-    typedef typename GET_PROP_TYPE(TypeTag, Model) Model;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CouplingManager = typename GET_PROP_TYPE(TypeTag, CouplingManager);
+    using NewtonMethod = typename GET_PROP_TYPE(TypeTag, NewtonMethod);
+    using NewtonController = typename GET_PROP_TYPE(TypeTag, NewtonController);
+    using Model = typename GET_PROP_TYPE(TypeTag, Model);
 
     // obtain the type tags of the sub problems
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
 
     // obtain types from the sub problem type tags
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, Problem) BulkProblem;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, Problem) LowDimProblem;
+    using BulkProblem = typename GET_PROP_TYPE(BulkProblemTypeTag, Problem);
+    using LowDimProblem = typename GET_PROP_TYPE(LowDimProblemTypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, TimeManager) BulkTimeManager;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, TimeManager) LowDimTimeManager;
+    using BulkTimeManager = typename GET_PROP_TYPE(BulkProblemTypeTag, TimeManager);
+    using LowDimTimeManager = typename GET_PROP_TYPE(LowDimProblemTypeTag, TimeManager);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, GridView) BulkGridView;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, GridView) LowDimGridView;
+    using BulkGridView = typename GET_PROP_TYPE(BulkProblemTypeTag, GridView);
+    using LowDimGridView = typename GET_PROP_TYPE(LowDimProblemTypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector) BulkSolutionVector;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector) LowDimSolutionVector;
+    using BulkSolutionVector = typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector);
+    using LowDimSolutionVector = typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector);
 
 public:
     MixedDimensionProblem(TimeManager &timeManager,
diff --git a/dumux/mixeddimension/properties.hh b/dumux/mixeddimension/properties.hh
index db98cd1d08fb410f7bf4d0be614f739987d51d22..0fb5e7fe686bea93913e5dd741c2291f14aa5034 100644
--- a/dumux/mixeddimension/properties.hh
+++ b/dumux/mixeddimension/properties.hh
@@ -122,21 +122,21 @@ SET_BOOL_PROP(MixedDimension, MixedDimensionUseIterativeSolver, false);
 SET_PROP(MixedDimension, SolutionVector)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
 public:
-    typedef typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector) SolutionVectorBulk;
-    typedef typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector) SolutionVectorLowDim;
-    typedef typename Dune::MultiTypeBlockVector<SolutionVectorBulk, SolutionVectorLowDim> type;
+    using SolutionVectorBulk = typename GET_PROP_TYPE(BulkProblemTypeTag, SolutionVector);
+    using SolutionVectorLowDim = typename GET_PROP_TYPE(LowDimProblemTypeTag, SolutionVector);
+    using type = Dune::MultiTypeBlockVector<SolutionVectorBulk, SolutionVectorLowDim>;
 };
 
 //! Set the type of a global jacobian matrix from the solution types
 SET_PROP(MixedDimension, JacobianMatrix)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag) BulkProblemTypeTag;
-    typedef typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag) LowDimProblemTypeTag;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using BulkProblemTypeTag = typename GET_PROP_TYPE(TypeTag, BulkProblemTypeTag);
+    using LowDimProblemTypeTag = typename GET_PROP_TYPE(TypeTag, LowDimProblemTypeTag);
     enum {
         numEqBulk = GET_PROP_VALUE(BulkProblemTypeTag, NumEq),
         numEqLowDim = GET_PROP_VALUE(LowDimProblemTypeTag, NumEq)
@@ -144,23 +144,23 @@ private:
 
 public:
     // the sub-blocks
-    typedef typename Dune::FieldMatrix<Scalar, numEqBulk, numEqBulk> MatrixLittleBlockBulk;
-    typedef typename Dune::FieldMatrix<Scalar, numEqBulk, numEqLowDim> MatrixLittleBlockBulkCoupling;
-    typedef typename Dune::FieldMatrix<Scalar, numEqLowDim, numEqLowDim> MatrixLittleBlockLowDim;
-    typedef typename Dune::FieldMatrix<Scalar, numEqLowDim, numEqBulk> MatrixLittleBlockLowDimCoupling;
+    using MatrixLittleBlockBulk = Dune::FieldMatrix<Scalar, numEqBulk, numEqBulk>;
+    using MatrixLittleBlockBulkCoupling = Dune::FieldMatrix<Scalar, numEqBulk, numEqLowDim>;
+    using MatrixLittleBlockLowDim = Dune::FieldMatrix<Scalar, numEqLowDim, numEqLowDim>;
+    using MatrixLittleBlockLowDimCoupling = Dune::FieldMatrix<Scalar, numEqLowDim, numEqBulk>;
 
     // the BCRS matrices of the subproblems as big blocks
-    typedef typename Dune::BCRSMatrix<MatrixLittleBlockBulk> MatrixBlockBulk;
-    typedef typename Dune::BCRSMatrix<MatrixLittleBlockBulkCoupling> MatrixBlockBulkCoupling;
-    typedef typename Dune::BCRSMatrix<MatrixLittleBlockLowDim> MatrixBlockLowDim;
-    typedef typename Dune::BCRSMatrix<MatrixLittleBlockLowDimCoupling> MatrixBlockLowDimCoupling;
+    using MatrixBlockBulk = Dune::BCRSMatrix<MatrixLittleBlockBulk>;
+    using MatrixBlockBulkCoupling = Dune::BCRSMatrix<MatrixLittleBlockBulkCoupling>;
+    using MatrixBlockLowDim = Dune::BCRSMatrix<MatrixLittleBlockLowDim>;
+    using MatrixBlockLowDimCoupling = Dune::BCRSMatrix<MatrixLittleBlockLowDimCoupling>;
 
     // the row types
-    typedef typename Dune::MultiTypeBlockVector<MatrixBlockBulk, MatrixBlockBulkCoupling> RowBulk;
-    typedef typename Dune::MultiTypeBlockVector<MatrixBlockLowDimCoupling, MatrixBlockLowDim> RowLowDim;
+    using RowBulk = Dune::MultiTypeBlockVector<MatrixBlockBulk, MatrixBlockBulkCoupling>;
+    using RowLowDim = Dune::MultiTypeBlockVector<MatrixBlockLowDimCoupling, MatrixBlockLowDim>;
 
     // the jacobian matrix
-    typedef typename Dune::MultiTypeBlockMatrix<RowBulk, RowLowDim> type;
+    using type = Dune::MultiTypeBlockMatrix<RowBulk, RowLowDim>;
 };
 
 //! Definition of the indices of the subproblems in the global solution vector
diff --git a/dumux/porousmediumflow/1p/model.hh b/dumux/porousmediumflow/1p/model.hh
index 36034a04bba4c04567c1e5a452b464d6215e2552..d4832632aff9ef4d93774b27e79446cd483003e0 100644
--- a/dumux/porousmediumflow/1p/model.hh
+++ b/dumux/porousmediumflow/1p/model.hh
@@ -86,10 +86,10 @@ SET_TYPE_PROP(OneP, VtkOutputFields, OnePVtkOutputFields<TypeTag>);   //! Set th
 SET_PROP(OneP, FluidState)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 public:
-    typedef ImmiscibleFluidState<Scalar, FluidSystem> type;
+    using type = ImmiscibleFluidState<Scalar, FluidSystem>;
 };
 
 ///////////////////////////////////////////////////////////////////////////
diff --git a/dumux/porousmediumflow/1p/sequential/celldata.hh b/dumux/porousmediumflow/1p/sequential/celldata.hh
index a3ac876fab9f428dfdc25b01dd626c671497c57e..f43cefc08fdab1b27e4dbf7f8d7aa942e1603ff4 100644
--- a/dumux/porousmediumflow/1p/sequential/celldata.hh
+++ b/dumux/porousmediumflow/1p/sequential/celldata.hh
@@ -45,8 +45,8 @@ template<class TypeTag>
 class CellData1P
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef FluxData1P<TypeTag> FluxData;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluxData = FluxData1P<TypeTag>;
 
 private:
     Scalar pressure_;
diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh
index ecb92022afecec60e51890c44843e4c509079b7f..753b81367d502017f214a87380acfc2af8acd372 100644
--- a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh
+++ b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressure.hh
@@ -53,21 +53,21 @@ namespace Dumux
  */
 template<class TypeTag> class FVPressure1P: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
+    using ParentType = FVPressure<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid Fluid;
+    using Fluid = typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
     enum
     {
@@ -84,11 +84,11 @@ template<class TypeTag> class FVPressure1P: public FVPressure<TypeTag>
         rhs = ParentType::rhs, matrix = ParentType::matrix
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 
 public:
diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressurevelocity.hh b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressurevelocity.hh
index 5b822c8cbc69c01cca6d0421bcab37663e6b7dd4..a7b910dad2aca51d713c0d07c7cb9b5fc50a01c8 100644
--- a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressurevelocity.hh
+++ b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/pressurevelocity.hh
@@ -54,8 +54,8 @@ namespace Dumux
  */
 template<class TypeTag> class FVPressureVelocity1P: public FVPressure1P<TypeTag>
 {
-    typedef FVPressure1P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = FVPressure1P<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 public:
     /*! \brief Initializes the pressure model
      *
diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh
index 01ebb15d23cac3b07389205497b2a81364f337d5..994b7b2eeeb23af43745d29a9a96f4a3920d4ea3 100644
--- a/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh
+++ b/dumux/porousmediumflow/1p/sequential/diffusion/cellcentered/velocity.hh
@@ -46,21 +46,21 @@ namespace Dumux
 template<class TypeTag>
 class FVVelocity1P
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid Fluid;
+    using Fluid = typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
     enum
     {
@@ -72,8 +72,8 @@ class FVVelocity1P
         pressEqIdx = Indices::pressureEqIdx // only one equation!
     };
 
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     //! Constructs a FVVelocity1P object
@@ -121,7 +121,7 @@ public:
 
             const typename Element::Geometry& geometry = element.geometry();
             // get corresponding reference element
-            typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+            using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
             const Dune::ReferenceElement< Scalar , dim > & refElement =
                     ReferenceElements::general( geometry.type() );
             const int numberOfFaces=refElement.size(1);
diff --git a/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh b/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh
index 609337fd483dbf9ffa25c1a3dfd964685e9d2475..ebc0d5824679575a82a67aebcb97c44b2938496f 100644
--- a/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh
+++ b/dumux/porousmediumflow/1p/sequential/diffusion/problem.hh
@@ -45,26 +45,26 @@ SET_TYPE_PROP(PressureOneP, Model, typename GET_PROP_TYPE(TypeTag, PressureModel
 template<class TypeTag>
 class DiffusionProblem1P: public OneModelProblem<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef OneModelProblem<TypeTag> ParentType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ParentType = OneModelProblem<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
     // material properties
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     enum
     {
         dim = Grid::dimension, dimWorld = Grid::dimensionworld
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/1p/sequential/fluxdata.hh b/dumux/porousmediumflow/1p/sequential/fluxdata.hh
index 0c9bbc642bca85b5b4eef5a9eb15a1e40c1af2d4..6ac753247d0471dd5bee7eb19fe384684685228b 100644
--- a/dumux/porousmediumflow/1p/sequential/fluxdata.hh
+++ b/dumux/porousmediumflow/1p/sequential/fluxdata.hh
@@ -41,16 +41,16 @@ template<class TypeTag>
 class FluxData1P
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension
     };
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, 2 * dim> VelocityVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using VelocityVector = Dune::FieldVector<DimVector, 2*dim>;
 
     VelocityVector velocity_;
     Scalar potential_[2 * dim];
diff --git a/dumux/porousmediumflow/1pncmin/implicit/model.hh b/dumux/porousmediumflow/1pncmin/implicit/model.hh
index 0693d74752aaa09a33116e3039e4824c573fb1a2..481a07110c1d6ea218dcc696fe4963123e030582 100644
--- a/dumux/porousmediumflow/1pncmin/implicit/model.hh
+++ b/dumux/porousmediumflow/1pncmin/implicit/model.hh
@@ -82,8 +82,8 @@ namespace Dumux
 template<class TypeTag>
 class OnePNCMinModel: public OnePNCModel<TypeTag>
 {
-    typedef Dumux::OnePNCMinModel<TypeTag> ThisType;
-    typedef Dumux::OnePNCModel<TypeTag> ParentType;
+    using ThisType = Dumux::OnePNCMinModel<TypeTag>;
+    using ParentType = Dumux::OnePNCModel<TypeTag>;
 
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
diff --git a/dumux/porousmediumflow/1pncmin/implicit/propertydefaults.hh b/dumux/porousmediumflow/1pncmin/implicit/propertydefaults.hh
index 6d1104d56e9c744c0106dd2fc337f9218e8f7627..ae1f2456db19fd49505fb757ebcd775bb2ce6485 100644
--- a/dumux/porousmediumflow/1pncmin/implicit/propertydefaults.hh
+++ b/dumux/porousmediumflow/1pncmin/implicit/propertydefaults.hh
@@ -50,7 +50,7 @@ namespace Properties {
 SET_PROP(OnePNCMin, NumSComponents)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem)) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
 public:
     static const int value = FluidSystem::numSComponents;
 };
@@ -63,7 +63,7 @@ public:
 SET_PROP(OnePNCMin, NumSPhases)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem)) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
 
 public:
     static const int value = FluidSystem::numSPhases;
@@ -77,7 +77,7 @@ public:
 SET_PROP(OnePNCMin, NumEq)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem)) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
 
 public:
     static const int value = FluidSystem::numComponents + FluidSystem::numSComponents; //steamaircao2h2 has 2 components in the fluidphase
@@ -91,10 +91,10 @@ public:
  */
 SET_PROP(OnePNCMin, FluidState){
     private:
-        typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-        typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+        using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     public:
-        typedef CompositionalFluidState<Scalar, FluidSystem> type;
+        using type = CompositionalFluidState<Scalar, FluidSystem>;
 };
 
 //! Use the 2pncmin local residual operator
@@ -118,10 +118,10 @@ SET_TYPE_PROP(OnePNCMin, IsothermalVolumeVariables, OnePNCMinVolumeVariables<Typ
 SET_PROP(OnePNCMinNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivityAverage<Scalar> type;
+    using type = ThermalConductivityAverage<Scalar>;
 };
 
 
@@ -147,7 +147,7 @@ SET_TYPE_PROP(OnePNCMinNI, IsothermalIndices, OnePNCMinIndices<TypeTag, /*PVOffs
 SET_PROP(OnePNCMinNI, IsothermalNumEq)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem)) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
 
 public:
     static const int value = FluidSystem::numComponents +FluidSystem::numSComponents;// in NonIsothermal 1 is substracted by default
diff --git a/dumux/porousmediumflow/2p/gridadaptindicator.hh b/dumux/porousmediumflow/2p/gridadaptindicator.hh
index bb2f8f945f83b19dce51385fd83b51166d810235..5bab61ccc9c6742528f9f0399a417c0c4bca7d6c 100644
--- a/dumux/porousmediumflow/2p/gridadaptindicator.hh
+++ b/dumux/porousmediumflow/2p/gridadaptindicator.hh
@@ -173,7 +173,7 @@ public:
 // TODO: fix adaptive simulations in parallel
 //#if HAVE_MPI
 //    // communicate updated values
-//    typedef VectorExchange<ElementMapper, ScalarSolutionType> DataHandle;
+//    using DataHandle = VectorExchange<ElementMapper, ScalarSolutionType>;
 //    DataHandle dataHandle(problem_.elementMapper(), maxSaturationDelta_);
 //    problem_.gridView().template communicate<DataHandle>(dataHandle,
 //                                                         Dune::InteriorBorder_All_Interface,
diff --git a/dumux/porousmediumflow/2p/griddatatransfer.hh b/dumux/porousmediumflow/2p/griddatatransfer.hh
index ada149cb09b6722755a6033c83dc4fc71eb48e50..1ca104eb8b0095de62493d9c4d9511522229042f 100644
--- a/dumux/porousmediumflow/2p/griddatatransfer.hh
+++ b/dumux/porousmediumflow/2p/griddatatransfer.hh
@@ -357,9 +357,9 @@ public:
 //! TODO: fix adaptive simulations in parallel
 //#if HAVE_MPI
 //        // communicate ghost data
-//        typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-//        typedef typename SolutionTypes::ElementMapper ElementMapper;
-//        typedef VectorExchange<ElementMapper, std::vector<CellData> > DataHandle;
+//        using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+//        using ElementMapper = typename SolutionTypes::ElementMapper;
+//        using DataHandle = VectorExchange<ElementMapper, std::vector<CellData> >;
 //        DataHandle dataHandle(problem.elementMapper(), this->cellDataGlobal());
 //        problem.gridView().template communicate<DataHandle>(dataHandle,
 //                                                            Dune::InteriorBorder_All_Interface,
diff --git a/dumux/porousmediumflow/2p/indices.hh b/dumux/porousmediumflow/2p/indices.hh
index 5ef9de730aede74f4b3e133c47ed7e9fc95305df..b75c8a585ec7e0391224dea2f42b63ac7701b2af 100644
--- a/dumux/porousmediumflow/2p/indices.hh
+++ b/dumux/porousmediumflow/2p/indices.hh
@@ -52,7 +52,7 @@ struct TwoPFormulation
 template <class TypeTag, int PVOffset = 0>
 struct TwoPCommonIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     // Phase indices
     static const int wPhaseIdx = FluidSystem::wPhaseIdx; //!< Index of the wetting phase
diff --git a/dumux/porousmediumflow/2p/model.hh b/dumux/porousmediumflow/2p/model.hh
index 1e87d6bcbc72ec1bb9834737f9337bf3378bc49a..c9afaef2fb2be56955e12640b50598aceeee57d3 100644
--- a/dumux/porousmediumflow/2p/model.hh
+++ b/dumux/porousmediumflow/2p/model.hh
@@ -112,10 +112,10 @@ SET_TYPE_PROP(TwoP,
 SET_PROP(TwoP, FluidState)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 public:
-    typedef ImmiscibleFluidState<Scalar, FluidSystem> type;
+    using type = ImmiscibleFluidState<Scalar, FluidSystem>;
 };
 
 ////////////////////////////////////////////////////////
@@ -132,17 +132,17 @@ SET_PROP(TwoPNI, IsothermalIndices)
 private:
     enum { Formulation = GET_PROP_VALUE(TypeTag, Formulation) };
 public:
-    typedef TwoPIndices<TypeTag, Formulation, 0> type;
+    using type = TwoPIndices<TypeTag, Formulation, 0>;
 };
 
 //! Somerton is used as default model to compute the effective thermal heat conductivity
 SET_PROP(TwoPNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivitySomerton<Scalar, Indices> type;
+    using type = ThermalConductivitySomerton<Scalar, Indices>;
 };
 
 } // end namespace Properties
diff --git a/dumux/porousmediumflow/2p/sequential/celldata.hh b/dumux/porousmediumflow/2p/sequential/celldata.hh
index 8aad1ae249dd7efcbd2257caa3b113c3e15272c5..5596336766b0779f174800ccf7490541821ad089 100644
--- a/dumux/porousmediumflow/2p/sequential/celldata.hh
+++ b/dumux/porousmediumflow/2p/sequential/celldata.hh
@@ -63,17 +63,17 @@ template<class TypeTag>
 class CellData2P<TypeTag, false>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef FluxData2P<TypeTag> FluxData;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FluxData = FluxData2P<TypeTag>;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -387,17 +387,17 @@ template<class TypeTag>
 class CellData2P<TypeTag, true>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef FluxData2P<TypeTag> FluxData;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FluxData = FluxData2P<TypeTag>;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
diff --git a/dumux/porousmediumflow/2p/sequential/celldataadaptive.hh b/dumux/porousmediumflow/2p/sequential/celldataadaptive.hh
index 22bf67ccca23e0ccd8941e017f47b4d0500e0575..7e8f62c763fa7dd024f6c60d7f900447f764ad47 100644
--- a/dumux/porousmediumflow/2p/sequential/celldataadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/celldataadaptive.hh
@@ -45,14 +45,14 @@ template<class TypeTag, bool enableCompressibility = GET_PROP_VALUE(TypeTag, Ena
 class CellData2PAdaptive: public CellData2P<TypeTag, enableCompressibility>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -88,7 +88,7 @@ public:
         }
     };
 
-    typedef AdaptedValues LoadBalanceData;
+    using LoadBalanceData = AdaptedValues;
 
     //! Constructs an adaptive CellData object
     CellData2PAdaptive()
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh
index 1e14e92f07bcbc2c23acf5500975d6de99603250..766b9e06fd288716e183c0164330f34f7ea676e3 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressure.hh
@@ -111,30 +111,30 @@ namespace Dumux
  */
 template<class TypeTag> class FVPressure2P: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
+    using ParentType = FVPressure<TypeTag>;
 
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureSolutionVector) PressureSolutionVector;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using PressureSolutionVector = typename GET_PROP_TYPE(TypeTag, PressureSolutionVector);
 
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
     enum
     {
@@ -157,15 +157,15 @@ template<class TypeTag> class FVPressure2P: public FVPressure<TypeTag>
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 protected:
     //! \cond \private
-    typedef typename ParentType::EntryType EntryType;
+    using EntryType = typename ParentType::EntryType;
     enum
     {
         rhs = ParentType::rhs, matrix = ParentType::matrix
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh
index 6ce09e210b1ce9ab73bce65d460df391101b14fb..e963915b2b14d4772c7671189a43407800ba6c99 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressureadaptive.hh
@@ -43,20 +43,20 @@ namespace Dumux
  */
 template<class TypeTag> class FVPressure2PAdaptive: public FVPressure2P<TypeTag>
 {
-    typedef FVPressure2P<TypeTag> ParentType;
+    using ParentType = FVPressure2P<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
     {
@@ -75,14 +75,14 @@ template<class TypeTag> class FVPressure2PAdaptive: public FVPressure2P<TypeTag>
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GridView::Intersection Intersection;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 protected:
     //! \cond \private
-    typedef typename ParentType::EntryType EntryType;
+    using EntryType = typename ParentType::EntryType;
     enum
     {
         rhs = ParentType::rhs, matrix = ParentType::matrix
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurevelocity.hh
index 69426627fb96b0e21e995bbb1e986b9e580e77a1..311f6317dd210c5ce4af2940aacd5916a1c84410 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurevelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/pressurevelocity.hh
@@ -42,8 +42,8 @@ namespace Dumux
  */
 template<class TypeTag> class FVPressureVelocity2P: public FVPressure2P<TypeTag>
 {
-    typedef FVPressure2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = FVPressure2P<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 public:
     /*! \brief Initializes the pressure model
      *
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh
index 4a29c9d7f00d32531c28282c41669ffdfaeb2a7f..f9ec976e316292b5947d8d24bef60297eb95bc70 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocity.hh
@@ -58,35 +58,35 @@ namespace Dumux
 template<class TypeTag>
 class FVVelocity2P
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView)GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed;
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
 
     enum
     {
@@ -108,8 +108,8 @@ class FVVelocity2P
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     /*! \brief Constructs a FVVelocity2P object
@@ -198,7 +198,7 @@ public:
 
                 const typename Element::Geometry& geometry = element.geometry();
                 // get corresponding reference element
-                typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+                using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
                 const Dune::ReferenceElement< Scalar , dim > & refElement =
                         ReferenceElements::general( geometry.type() );
                 const int numberOfFaces=refElement.size(1);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh
index 6935572a3fcb5ffd698aa6e9458bd168ce2021f9..9b117954bcf04a432262faccc445c77896a09477 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/cellcentered/velocityadaptive.hh
@@ -37,28 +37,28 @@ namespace Dumux
 template<class TypeTag>
 class FVVelocity2PAdaptive: public FVVelocity2P<TypeTag>
 {
-    typedef FVVelocity2P<TypeTag> ParentType;
+    using ParentType = FVVelocity2P<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-     typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-     typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+     using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
 
-     typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+     using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-     typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-     typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+     using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+     using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Intersection Intersection;
+    using Intersection = typename GridView::Intersection;
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
 
     enum
     {
@@ -74,8 +74,8 @@ class FVVelocity2PAdaptive: public FVVelocity2P<TypeTag>
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     /*! \brief Constructs a FVVelocity2PAdaptive object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperator.hh
index cdd1c40c79eeecf8c1d905cda6e6a1724d428b52..41040c5e3ec57481a46618603599eea0b2a7efe8 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperator.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperator.hh
@@ -82,20 +82,20 @@ class CROperatorAssemblerTwoP
             return gt.dim() == dim-1;
         }
     };
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum {dim=GridView::dimension};
-    typedef typename GridView::IndexSet IS;
-    typedef Dune::FieldMatrix<Scalar,1,1> BlockType;
-    typedef Dune::BCRSMatrix<BlockType> MatrixType;
-    typedef typename MatrixType::block_type MBlockType;
-    typedef typename MatrixType::RowIterator rowiterator;
-    typedef typename MatrixType::ColIterator coliterator;
-    typedef std::array<BoundaryConditions::Flags,1> BCBlockType;     // componentwise boundary conditions
-    typedef Dune::BlockVector< Dune::FieldVector<double,1> > SatType;
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView,FaceLayout> FaceMapper;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using IS = typename GridView::IndexSet;
+    using BlockType = Dune::FieldMatrix<Scalar, 1, 1>;
+    using MatrixType = Dune::BCRSMatrix<BlockType>;
+    using MBlockType = typename MatrixType::block_type;
+    using rowiterator = typename MatrixType::RowIterator;
+    using coliterator = typename MatrixType::ColIterator;
+    using BCBlockType = std::array<BoundaryConditions::Flags, 1>;     // componentwise boundary conditions
+    using SatType = Dune::BlockVector< Dune::FieldVector<double, 1> >;
+    using FaceMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, FaceLayout>;
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum
     {
         pressureEqIdx = Indices::pressureEqIdx,
@@ -108,7 +108,7 @@ class CROperatorAssemblerTwoP
     }
 
 public:
-    typedef MatrixType RepresentationType;
+    using RepresentationType = MatrixType;
 
     CROperatorAssemblerTwoP (const GridView& gridview)
     : gridView_(gridview), faceMapper_(gridView_), size_(faceMapper_.size()),
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperatoradaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperatoradaptive.hh
index 53f5a105546bf23b729b2b9c29910ce38d18ad3a..544977e673c2ca92cbec80691803a8084eff56c3 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperatoradaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/croperatoradaptive.hh
@@ -79,21 +79,21 @@ namespace Dumux
 template<class TypeTag>
 class CROperatorAssemblerTwoPAdaptive
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     enum {dim=GridView::dimension};
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::IndexSet IS;
-    typedef Dune::FieldMatrix<Scalar,1,1> BlockType;
-    typedef Dune::BCRSMatrix<BlockType> MatrixType;
-    typedef typename MatrixType::block_type MBlockType;
-    typedef typename MatrixType::RowIterator rowiterator;
-    typedef typename MatrixType::ColIterator coliterator;
-    typedef std::array<BoundaryConditions::Flags,1> BCBlockType;     // componentwise boundary conditions
-    typedef Dune::BlockVector< Dune::FieldVector<double,1> > SatType;
-    typedef Dumux::IntersectionMapper<GridView> IntersectionMapper;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using IS = typename GridView::IndexSet;
+    using BlockType = Dune::FieldMatrix<Scalar, 1, 1>;
+    using MatrixType = Dune::BCRSMatrix<BlockType>;
+    using MBlockType = typename MatrixType::block_type;
+    using rowiterator = typename MatrixType::RowIterator;
+    using coliterator = typename MatrixType::ColIterator;
+    using BCBlockType = std::array<BoundaryConditions::Flags, 1>;     // componentwise boundary conditions
+    using SatType = Dune::BlockVector< Dune::FieldVector<double, 1> >;
+    using IntersectionMapper = Dumux::IntersectionMapper<GridView>;
+
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -107,7 +107,7 @@ class CROperatorAssemblerTwoPAdaptive
     }
 
 public:
-    typedef MatrixType RepresentationType;
+    using RepresentationType = MatrixType;
 
     CROperatorAssemblerTwoPAdaptive (const GridView& gridview)
     : gridView_(gridview), is_(gridView_.indexSet()), intersectionMapper_(gridView_)
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh
index 5722ce28da61872dfa3b1b8dfc8e53021410b87c..78aff0d9a2a54ba4362be5b2c6e418dc5ac89c3e 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/localstiffness.hh
@@ -66,18 +66,18 @@ namespace Dumux
   template<class TypeTag, int m>
   class LocalStiffness
   {
-      typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+      using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     // grid types
-      typedef typename GridView::template Codim<0>::Entity Entity;
+      using Entity = typename GridView::template Codim<0>::Entity;
     enum {n=GridView::dimension};
 
   public:
     // types for matrics, vectors and boundary conditions
-    typedef Dune::FieldMatrix<Scalar,m,m> MBlockType;                      // one entry in the stiffness matrix
-    typedef Dune::FieldVector<Scalar,m> VBlockType;                        // one entry in the global vectors
-        typedef std::array<BoundaryConditions::Flags,m> BCBlockType; // componentwise boundary conditions
-        typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using MBlockType = Dune::FieldMatrix<Scalar, m, m>;                      // one entry in the stiffness matrix
+    using VBlockType = Dune::FieldVector<Scalar, m>;                        // one entry in the global vectors
+        using BCBlockType = std::array<BoundaryConditions::Flags, m>; // componentwise boundary conditions
+        using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     virtual ~LocalStiffness ()
     {
@@ -245,18 +245,18 @@ namespace Dumux
   template<class TypeTag, int m>
   class LinearLocalStiffness : public LocalStiffness<TypeTag,m>
   {
-      typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+      using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     // grid types
-      typedef typename GridView::template Codim<0>::Entity Entity;
+      using Entity = typename GridView::template Codim<0>::Entity;
     enum {n=GridView::dimension};
 
   public:
     // types for matrics, vectors and boundary conditions
-      typedef Dune::FieldMatrix<Scalar,m,m> MBlockType;                      // one entry in the stiffness matrix
-      typedef Dune::FieldVector<Scalar,m> VBlockType;                        // one entry in the global vectors
-      typedef std::array<BoundaryConditions::Flags,m> BCBlockType;    // componentwise boundary conditions
+      using MBlockType = Dune::FieldMatrix<Scalar, m, m>;                      // one entry in the stiffness matrix
+      using VBlockType = Dune::FieldVector<Scalar, m>;                        // one entry in the global vectors
+      using BCBlockType = std::array<BoundaryConditions::Flags, m>;    // componentwise boundary conditions
 
     /*! initialize local stiffness matrix */
       LinearLocalStiffness ()
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimetic.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimetic.hh
index 7ea4301a948dfc0efd4d29a1858abc0eb60526b4..71b8fdf979cdcb36b0d1868cc20e8a2e1e6c3bea 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimetic.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimetic.hh
@@ -61,11 +61,11 @@ namespace Dumux
 template<class TypeTag>
 class MimeticTwoPLocalStiffness: public LocalStiffness<TypeTag, 1>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     // grid types
     enum
@@ -97,16 +97,16 @@ class MimeticTwoPLocalStiffness: public LocalStiffness<TypeTag, 1>
         saturationType = GET_PROP_VALUE(TypeTag, SaturationFormulation)
     };
 
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Grid = typename GridView::Grid;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
 
 public:
     // define the number of components of your system, this is used outside
@@ -202,7 +202,7 @@ public:
     // the local stiffness matrix is independend of the current
     // solution. We need to implement this properly, but this
     // should at least make the thing compile...
-    typedef Dune::FieldVector<Scalar, m> VBlockType;
+    using VBlockType = Dune::FieldVector<Scalar, m>;
     void assemble(const Element &cell, const Dune::BlockVector<VBlockType>& localSolution, int orderOfShapeFns = 1)
     {
         assemble(cell, orderOfShapeFns);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimeticadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimeticadaptive.hh
index bbf7bfae9aa7f49a337ad31f21bf96cf48ae0820..2269daa2f9c6d599effbee6ef275fb5ed0c58350 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimeticadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/mimeticadaptive.hh
@@ -62,11 +62,11 @@ namespace Dumux
 template<class TypeTag>
 class MimeticTwoPLocalStiffnessAdaptive: public LocalStiffness<TypeTag, 1>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     // grid types
     enum
@@ -98,18 +98,18 @@ class MimeticTwoPLocalStiffnessAdaptive: public LocalStiffness<TypeTag, 1>
         saturationType = GET_PROP_VALUE(TypeTag, SaturationFormulation)
     };
 
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Grid = typename GridView::Grid;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
 
-    typedef Dumux::IntersectionMapper<GridView> IntersectionMapper;
+    using IntersectionMapper = Dumux::IntersectionMapper<GridView>;
 
 public:
     // define the number of components of your system, this is used outside
@@ -219,7 +219,7 @@ public:
     // the local stiffness matrix is independend of the current
     // solution. We need to implement this properly, but this
     // should at least make the thing compile...
-    typedef Dune::FieldVector<Scalar, m> VBlockType;
+    using VBlockType = Dune::FieldVector<Scalar, m>;
     void assemble(const Element &cell, const Dune::BlockVector<VBlockType>& localSolution, int orderOfShapeFns = 1)
     {
         assemble(cell, orderOfShapeFns);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operator.hh
index bb812b1e06fc2fdb2459fca5689e58a42e0bc46b..29dc73acb805c028bbead298baeabbd2bc170e05 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operator.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operator.hh
@@ -47,28 +47,28 @@ namespace Dumux
 template<class TypeTag>
 class MimeticOperatorAssemblerTwoP: public CROperatorAssemblerTwoP<TypeTag>
 {
-    typedef CROperatorAssemblerTwoP<TypeTag> ParentType;
+    using ParentType = CROperatorAssemblerTwoP<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld,
     };
-    typedef typename GET_PROP_TYPE(TypeTag, LocalStiffness) LocalStiffness;
+    using LocalStiffness = typename GET_PROP_TYPE(TypeTag, LocalStiffness);
 
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Element = typename GridView::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -82,7 +82,7 @@ class MimeticOperatorAssemblerTwoP: public CROperatorAssemblerTwoP<TypeTag>
         pressureEqIdx = Indices::pressureEqIdx
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> FieldVector;
+    using FieldVector = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operatoradaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operatoradaptive.hh
index 97ab748a3cd416ed49bd6a118d7da55400b870ee..426b43ef849d6a9fa776d8eedbd96b8692deb08b 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operatoradaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/operatoradaptive.hh
@@ -47,30 +47,30 @@ namespace Dumux
 template<class TypeTag>
 class MimeticOperatorAssemblerTwoPAdaptive : public CROperatorAssemblerTwoPAdaptive<TypeTag>
 {
-    typedef CROperatorAssemblerTwoPAdaptive<TypeTag> ParentType;
+    using ParentType = CROperatorAssemblerTwoPAdaptive<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum
     {
         dim=GridView::dimension,
         dimWorld=GridView::dimensionworld
     };
-    typedef typename GET_PROP_TYPE(TypeTag, LocalStiffness) LocalStiffness;
+    using LocalStiffness = typename GET_PROP_TYPE(TypeTag, LocalStiffness);
 
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Element = typename GridView::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -83,7 +83,7 @@ class MimeticOperatorAssemblerTwoPAdaptive : public CROperatorAssemblerTwoPAdapt
         satEqIdx = Indices::satEqIdx
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> FieldVector;
+    using FieldVector = Dune::FieldVector<Scalar, dimWorld>;
 public:
 
     MimeticOperatorAssemblerTwoPAdaptive (const GridView& gridView)
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressure.hh
index f06780a9b7d8b89732cd83406950c36945f671a8..7ca4ed88b2b112c91e9cd85d69ba2c128d1bbe97 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressure.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressure.hh
@@ -63,17 +63,17 @@ namespace Dumux
  */
 template<class TypeTag> class MimeticPressure2P
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum
     {
@@ -99,27 +99,27 @@ template<class TypeTag> class MimeticPressure2P
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename GET_PROP_TYPE(TypeTag, LocalStiffness) LocalStiffness;
-    typedef Dune::BlockVector< Dune::FieldVector<Scalar, 1> > TraceType;
-    typedef MimeticOperatorAssemblerTwoP<TypeTag> OperatorAssembler;
+    using LocalStiffness = typename GET_PROP_TYPE(TypeTag, LocalStiffness);
+    using TraceType = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using OperatorAssembler = MimeticOperatorAssemblerTwoP<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureRHSVector) Vector;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
+    using Vector = typename GET_PROP_TYPE(TypeTag, PressureRHSVector);
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
     //initializes the matrix to store the system of equations
     void initializeMatrix();
@@ -277,7 +277,7 @@ public:
 
                 const typename Element::Geometry& geometry = element.geometry();
                 // get corresponding reference element
-                typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+                using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
                 const Dune::ReferenceElement< Scalar , dim > & refElement =
                         ReferenceElements::general( geometry.type() );
                 const int numberOfFaces=refElement.size(1);
@@ -466,7 +466,7 @@ private:
 template<class TypeTag>
 void MimeticPressure2P<TypeTag>::solve()
 {
-    typedef typename GET_PROP_TYPE(TypeTag, LinearSolver) Solver;
+    using Solver = typename GET_PROP_TYPE(TypeTag, LinearSolver);
 
     auto verboseLevelSolver = getParam<int>("LinearSolver.Verbosity");
 
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressureadaptive.hh
index ad5b16698c0bce642257b09eb61dd9e20707ced7..7087dc0c9f67fb07f3bdc9a48f55c84e89c764a2 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressureadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mimetic/pressureadaptive.hh
@@ -62,17 +62,17 @@ namespace Dumux
  */
 template<class TypeTag> class MimeticPressure2PAdaptive
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum
     {
@@ -99,27 +99,27 @@ template<class TypeTag> class MimeticPressure2PAdaptive
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, LocalStiffness) LocalStiffness;
-    typedef Dune::BlockVector< Dune::FieldVector<Scalar, 1> > TraceType;
-    typedef MimeticOperatorAssemblerTwoPAdaptive<TypeTag> OperatorAssembler;
+    using LocalStiffness = typename GET_PROP_TYPE(TypeTag, LocalStiffness);
+    using TraceType = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using OperatorAssembler = MimeticOperatorAssemblerTwoPAdaptive<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureRHSVector) Vector;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
+    using Vector = typename GET_PROP_TYPE(TypeTag, PressureRHSVector);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
     //initializes the matrix to store the system of equations
     void initializeMatrix();
@@ -289,7 +289,7 @@ public:
 
                 const typename Element::Geometry& geometry = element.geometry();
                 // get corresponding reference element
-                typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+                using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
                 const Dune::ReferenceElement< Scalar , dim > & refElement =
                         ReferenceElements::general( geometry.type() );
                 const int numberOfFaces=refElement.size(1);
@@ -478,7 +478,7 @@ private:
 template<class TypeTag>
 void MimeticPressure2PAdaptive<TypeTag>::solve()
 {
-    typedef typename GET_PROP_TYPE(TypeTag, LinearSolver) Solver;
+    using Solver = typename GET_PROP_TYPE(TypeTag, LinearSolver);
 
     int verboseLevelSolver = getParam<int>("LinearSolver.Verbosity");
 
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh
index 35210da97ad34363377464bd9e1540b6fc77a7c8..eecc7a562c5c678254e5d09ea290de96e0dba06c 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressure.hh
@@ -69,37 +69,37 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL2dPressure2p: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FVPressure<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
 
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
     enum
     {
@@ -128,15 +128,15 @@ class FvMpfaL2dPressure2p: public FVPressure<TypeTag>
         neumannDirichlet = 3
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     /*! \brief Type of the interaction volume objects
@@ -145,12 +145,12 @@ public:
      * to calculated the transmissibility matrices of one MPFA interaction volume.
      *
      */
-    typedef FVMPFALInteractionVolume<TypeTag> InteractionVolume;
-    typedef FvMpfaL2dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using InteractionVolume = FVMPFALInteractionVolume<TypeTag>;
+    using TransmissibilityCalculator = FvMpfaL2dTransmissibilityCalculator<TypeTag>;
 private:
 
-    typedef std::vector<InteractionVolume> GlobalInteractionVolumeVector;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
+    using GlobalInteractionVolumeVector = std::vector<InteractionVolume>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
 
     // helper function that finds the correct neighboring intersections
     Intersection getNextIntersection_(const Element&, const IntersectionIterator&);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh
index 3adace7634242a0a1b6c8567253492119669ab3f..307c30bb026480dc0bb44f79fcfe8c318e6213b6 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressureadaptive.hh
@@ -71,37 +71,37 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL2dPressure2pAdaptive: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FVPressure<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
 
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
     enum
     {
@@ -131,16 +131,16 @@ class FvMpfaL2dPressure2pAdaptive: public FVPressure<TypeTag>
     };
 
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GridView::Grid Grid;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
+    using Intersection = typename GridView::Intersection;
+    using Grid = typename GridView::Grid;
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
 
@@ -151,12 +151,12 @@ public:
      * to calculated the transmissibility matrices of one MPFA interaction volume.
      *
      */
-    typedef FVMPFALInteractionVolume<TypeTag> InteractionVolume;
-    typedef FvMpfaL2dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using InteractionVolume = FVMPFALInteractionVolume<TypeTag>;
+    using TransmissibilityCalculator = FvMpfaL2dTransmissibilityCalculator<TypeTag>;
 private:
 
-    typedef std::vector<InteractionVolume> GlobalInteractionVolumeVector;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
+    using GlobalInteractionVolumeVector = std::vector<InteractionVolume>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
 
     // helper function thats find the correct neighboring intersections
     Intersection getNextIntersection_(const Element&, const IntersectionIterator&);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh
index ad986141b2f085b7fafacf3216e9f1e662179f69..883de2b022330f70567f777605b505e56f447cf7 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocity.hh
@@ -45,37 +45,37 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL2dPressureVelocity2p: public FvMpfaL2dPressure2p<TypeTag>
 {
-    typedef FvMpfaL2dPressure2p<TypeTag> ParentType;
+    using ParentType = FvMpfaL2dPressure2p<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GridView::IndexSet IndexSet;
-    typedef typename GridView::Intersection Intersection;
+    using IndexSet = typename GridView::IndexSet;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename ParentType::InteractionVolume InteractionVolume;
+    using InteractionVolume = typename ParentType::InteractionVolume;
 
     enum
     {
@@ -92,8 +92,8 @@ template<class TypeTag> class FvMpfaL2dPressureVelocity2p: public FvMpfaL2dPress
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     //! Constructs a FvMpfaL2dPressureVelocity2p object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh
index 91e9a31b6913e89390ed1d179ea4aa3f6c626f46..204211200ab63d1d72bebffe821abab41ba0dc15 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dpressurevelocityadaptive.hh
@@ -47,41 +47,41 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL2dPressureVelocity2pAdaptive: public FvMpfaL2dPressure2pAdaptive<TypeTag>
 {
-    typedef FvMpfaL2dPressure2pAdaptive<TypeTag> ParentType;
+    using ParentType = FvMpfaL2dPressure2pAdaptive<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
-    typedef typename GridView::Intersection Intersection;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename Grid::template Codim<0>::Entity::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Grid::template Codim<0>::Entity::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename ParentType::InteractionVolume InteractionVolume;
+    using InteractionVolume = typename ParentType::InteractionVolume;
 
     enum
     {
@@ -101,9 +101,9 @@ template<class TypeTag> class FvMpfaL2dPressureVelocity2pAdaptive: public FvMpfa
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaL2dPressureVelocity2pAdaptive object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh
index 1e5869bb215dccb078b6ffa35cf9a2a9e649356d..2af12bcfb917556af3738bf466b299fb2f76d62f 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dtransmissibilitycalculator.hh
@@ -42,25 +42,25 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL2dTransmissibilityCalculator
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef FVMPFALInteractionVolume<TypeTag> InteractionVolume;
+    using InteractionVolume = FVMPFALInteractionVolume<TypeTag>;
 
 public:
-    typedef Dune::FieldMatrix<Scalar, dim, 2 * dim - dim + 1> TransmissibilityType;//!< Type of the transmissibility matrix
+    using TransmissibilityType = Dune::FieldMatrix<Scalar, dim, 2*dim - dim + 1>;//!< Type of the transmissibility matrix
 
     //! return values for the transmissibility functions
     enum
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh
index 773927e681c6221c87dc79e22635ae5ab4825234..110e1d4b26e543aa5edaa50973658fa8a4c85cb5 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocity.hh
@@ -55,43 +55,43 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL2dVelocity2p
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef FVMPFALInteractionVolume<TypeTag> InteractionVolume;
-    typedef FvMpfaL2dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
+    using InteractionVolume = FVMPFALInteractionVolume<TypeTag>;
+    using TransmissibilityCalculator = FvMpfaL2dTransmissibilityCalculator<TypeTag>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
 
     enum
         {
@@ -115,10 +115,10 @@ template<class TypeTag> class FvMpfaL2dVelocity2p
             numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
         };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaL2dVelocity2p object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh
index 3ff8540e2f5c7ac807ff6d4bd1989cc7e4c3fcef..9e3cdab9c4845935a699329286e79c1873232b0c 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/2dvelocityadaptive.hh
@@ -51,44 +51,44 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL2dVelocity2pAdaptive : public FvMpfaL2dVelocity2p<TypeTag>
 {
-    typedef FvMpfaL2dVelocity2p<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FvMpfaL2dVelocity2p<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef FVMPFALInteractionVolume<TypeTag> InteractionVolume;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
-    typedef FvMpfaL2dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using InteractionVolume = FVMPFALInteractionVolume<TypeTag>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
+    using TransmissibilityCalculator = FvMpfaL2dTransmissibilityCalculator<TypeTag>;
 
     enum
         {
@@ -112,10 +112,10 @@ template<class TypeTag> class FvMpfaL2dVelocity2pAdaptive : public FvMpfaL2dVelo
             numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
         };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaL2dVelocity2pAdaptive object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh
index a87057e68491ceec6d1bbf73572415547c6dca24..5ecb4f48d20b28a33891d13d3bcdd431e10bb71f 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontainer.hh
@@ -50,36 +50,36 @@ bool sort_compare(const std::vector<int>& entryI, const std::vector<int>& entryJ
 template<class TypeTag>
 class FvMpfaL3dInteractionVolumeContainer
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) Implementation;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Implementation = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
-    typedef typename Element::Geometry ElementGeometry;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
+    using ElementGeometry = typename Element::Geometry;
 
-    typedef typename GridView::Intersection Intersection;
-    typedef typename Intersection::Geometry IntersectionGeometry;
+    using Intersection = typename GridView::Intersection;
+    using IntersectionGeometry = typename Intersection::Geometry;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
     enum
         {
@@ -97,11 +97,11 @@ class FvMpfaL3dInteractionVolumeContainer
 
 public:
     //! Type for storing an MPFA-interaction-volume. (Usually of type FvMpfaL3dInteractionVolume or FvMpfaL3dInteractionVolumeAdaptive)
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 
 private:
-    typedef std::vector<InteractionVolume> GlobalInteractionVolumeVector;
-    typedef std::vector<Dune::FieldVector<Dune::FieldVector<Scalar, 2>, 2 * dim> > FaceAreaVector;
+    using GlobalInteractionVolumeVector = std::vector<InteractionVolume>;
+    using FaceAreaVector = std::vector<Dune::FieldVector<Dune::FieldVector<Scalar, 2>, 2*dim> >;
 protected:
     void storeSubVolumeElements(const Element& element, std::vector < std::vector<int> >& elemVertMap);
     void storeIntersectionInfo(const Element& element, std::vector < std::vector<int> >& elemVertMap);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh
index 32cff04d0a5be3f5c83604a4fcfddcf580165e97..6dddb4fe466df84b2a2805c6d04b7525b5cbfefc 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dinteractionvolumecontaineradaptive.hh
@@ -47,43 +47,43 @@ template<class TypeTag>
 class FvMpfaL3dInteractionVolumeContainerAdaptive: public FvMpfaL3dInteractionVolumeContainer<TypeTag>
 {
     friend class FvMpfaL3dInteractionVolumeContainer<TypeTag>;
-    typedef FvMpfaL3dInteractionVolumeContainer<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FvMpfaL3dInteractionVolumeContainer<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
-    typedef typename Element::Geometry ElementGeometry;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
+    using ElementGeometry = typename Element::Geometry;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef std::vector<Dune::FieldVector<std::set<int>, 2*dim> > FaceVerticesVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using FaceVerticesVector = std::vector<Dune::FieldVector<std::set<int>, 2*dim> >;
 
     enum
         {
             pressureEqIdx = Indices::pressureEqIdx,
         };
 
-    typedef IndexTranslatorAdaptive IndexTranslator;
+    using IndexTranslator = IndexTranslatorAdaptive;
 
 public:
     //! Type for storing an MPFA-interaction-volume.
     //! (Usually of type FvMpfaL3dInteractionVolume or FvMpfaL3dInteractionVolumeAdaptive)
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 
 private:
 
@@ -121,7 +121,7 @@ public:
     }
 
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
 
     //! Returns the implementation of the problem (i.e. static polymorphism)
     Implementation &asImp_()
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh
index c56645aaabfea18b1fdbe19ca73ecf14abf54ec6..2e6c457bb02713ff4e135a5042b7f91cc485f139 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressure.hh
@@ -70,35 +70,35 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL3dPressure2p: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FVPressure<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
     enum
         {
@@ -136,24 +136,24 @@ class FvMpfaL3dPressure2p: public FVPressure<TypeTag>
             innerSideFace = 1
         };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename Element::Geometry Geometry;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using Geometry = typename Element::Geometry;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) InteractionVolumeContainer;
-    typedef  FvMpfaL3dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using InteractionVolumeContainer = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
+    using TransmissibilityCalculator = FvMpfaL3dTransmissibilityCalculator<TypeTag>;
 public:
     //! Type including methods for calculation of MPFA transmissibilities
-    typedef typename TransmissibilityCalculator::TransmissibilityType TransmissibilityType;
+    using TransmissibilityType = typename TransmissibilityCalculator::TransmissibilityType;
     //! Type for storing interaction volume information
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 protected:
     //initializes the matrix to store the system of equations
     friend class FVPressure<TypeTag>;
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh
index cda27a8e0c967bcf9b4e458aa5e8924b40fb9a06..fb4a7ad91c936438d2eaa24d6cda5a64fdd6e017 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressureadaptive.hh
@@ -74,35 +74,35 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL3dPressure2pAdaptive: public FvMpfaL3dPressure2p<TypeTag>
 {
-    typedef FvMpfaL3dPressure2p<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FvMpfaL3dPressure2p<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
     enum
         {
@@ -140,23 +140,23 @@ class FvMpfaL3dPressure2pAdaptive: public FvMpfaL3dPressure2p<TypeTag>
             innerSideFace = 1
         };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename Element::Geometry Geometry;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using Geometry = typename Element::Geometry;
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) InteractionVolumeContainer;
-    typedef  FvMpfaL3dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using InteractionVolumeContainer = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
+    using TransmissibilityCalculator = FvMpfaL3dTransmissibilityCalculator<TypeTag>;
 public:
     //! Type including methods for calculation of MPFA transmissibilities
-    typedef typename TransmissibilityCalculator::TransmissibilityType TransmissibilityType;
+    using TransmissibilityType = typename TransmissibilityCalculator::TransmissibilityType;
     //! Type for storing interaction volume information
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 
 protected:
     //initializes the matrix to store the system of equations
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh
index 405ecaec196bd6000861c74c66a8674d980fa414..c84cead924902bbe4e1c79b711fef60e3112e573 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocity.hh
@@ -42,17 +42,17 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL3dPressureVelocity2p: public FvMpfaL3dPressure2p<TypeTag>
 {
-    typedef FvMpfaL3dPressure2p<TypeTag> ParentType;
+    using ParentType = FvMpfaL3dPressure2p<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -69,24 +69,24 @@ template<class TypeTag> class FvMpfaL3dPressureVelocity2p: public FvMpfaL3dPress
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
-    typedef typename GridView::Intersection Intersection;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     //! Constructs a FvMpfaL3dPressureVelocity2p object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh
index 666b0727777871661e849a047335553472fa73a9..45e9ff02e156ab06083755935fe2025d127f3653 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dpressurevelocityadaptive.hh
@@ -43,17 +43,17 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL3dPressureVelocity2pAdaptive: public FvMpfaL3dPressure2pAdaptive<TypeTag>
 {
-    typedef FvMpfaL3dPressure2pAdaptive<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using ParentType = FvMpfaL3dPressure2pAdaptive<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -70,25 +70,25 @@ template<class TypeTag> class FvMpfaL3dPressureVelocity2pAdaptive: public FvMpfa
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
-
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
-
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
-    typedef typename GridView::Intersection Intersection;
-
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
+
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
+
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
+    using Intersection = typename GridView::Intersection;
+
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaL3dPressureVelocity2pAdaptive object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh
index a93e9f84c287c7face3951be7517a361b17cd058..ef76537a5db029a3aed1ff600972b5a446f1a079 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dtransmissibilitycalculator.hh
@@ -48,7 +48,7 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL3dTransmissibilityCalculator
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
@@ -60,19 +60,19 @@ class FvMpfaL3dTransmissibilityCalculator
             sDiff = 0, sSum = 1
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 
 
 public:
-    typedef Dune::FieldMatrix<Scalar, dim, 2 * dim - dim + 1> TransmissibilityType;//!< Type of the transmissibility matrix
+    using TransmissibilityType = Dune::FieldMatrix<Scalar, dim, 2*dim - dim + 1>;//!< Type of the transmissibility matrix
 
     int chooseTransmissibility(TransmissibilityType& transmissibilityOne,
                                TransmissibilityType& transmissibilityTwo, int lTypeOne, int lTypeTwo);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh
index f1248255327aa015550023103fb9db293895fd0b..78e43ba358e7cbd737273ad5b2e425a0fb2fc381 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocity.hh
@@ -53,45 +53,45 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL3dVelocity2p
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) InteractionVolumeContainer;
-    typedef  FvMpfaL3dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
-    typedef typename TransmissibilityCalculator::TransmissibilityType TransmissibilityType;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
+    using InteractionVolumeContainer = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
+    using TransmissibilityCalculator = FvMpfaL3dTransmissibilityCalculator<TypeTag>;
+    using TransmissibilityType = typename TransmissibilityCalculator::TransmissibilityType;
 
     enum
     {
@@ -128,10 +128,10 @@ template<class TypeTag> class FvMpfaL3dVelocity2p
         innerEdgeFace = 2, innerSideFace = 1
     };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaL3dVelocity2p object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh
index 2c0d17cc898851f4e8ded1cf205815a3cc904196..5a7458a87885794645b4231609740abbc8644d62 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/lmethod/3dvelocityadaptive.hh
@@ -51,46 +51,46 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaL3dVelocity2pAdaptive: public FvMpfaL3dVelocity2p<TypeTag>
 {
-    typedef FvMpfaL3dVelocity2p<TypeTag> ParentType;
+    using ParentType = FvMpfaL3dVelocity2p<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) InteractionVolumeContainer;
-    typedef  FvMpfaL3dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
-    typedef typename TransmissibilityCalculator::TransmissibilityType TransmissibilityType;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
+    using InteractionVolumeContainer = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
+    using TransmissibilityCalculator = FvMpfaL3dTransmissibilityCalculator<TypeTag>;
+    using TransmissibilityType = typename TransmissibilityCalculator::TransmissibilityType;
 
 
     enum
@@ -128,10 +128,10 @@ template<class TypeTag> class FvMpfaL3dVelocity2pAdaptive: public FvMpfaL3dVeloc
         innerEdgeFace = 2, innerSideFace = 1
     };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
     InteractionVolumeContainer& interactionVolumes_()
     {
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh
index c4d7c1f45e48066974363b7fdb9282746ed88fd5..d0d599ce1dde88c926917eebc78d9e5a6a1572b1 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressure.hh
@@ -65,35 +65,35 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaO2dPressure2p: public FVPressure<TypeTag>
 {
-    typedef FVPressure<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FVPressure<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
     enum
     {
@@ -122,20 +122,20 @@ class FvMpfaO2dPressure2p: public FVPressure<TypeTag>
         neumannDirichlet = 3
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
-    typedef FVMPFAOInteractionVolume<TypeTag> InteractionVolume;
+    using InteractionVolume = FVMPFAOInteractionVolume<TypeTag>;
 
-    typedef std::vector<InteractionVolume> GlobalInteractionVolumeVector;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
+    using GlobalInteractionVolumeVector = std::vector<InteractionVolume>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
 
     // helper function that finds the correct neighboring intersections
     Intersection getNextIntersection_(const Element&, const IntersectionIterator&);
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh
index 1fe33cf2afae93ac42b589459459000edaca2326..57e6724a034c10ab57f72cd2cb7df3a57a5167f9 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dpressurevelocity.hh
@@ -44,37 +44,37 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaO2dPressureVelocity2p: public FvMpfaO2dPressure2p<TypeTag>
 {
-    typedef FvMpfaO2dPressure2p<TypeTag> ParentType;
+    using ParentType = FvMpfaO2dPressure2p<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef FVMPFAOInteractionVolume<TypeTag> InteractionVolume;
+    using InteractionVolume = FVMPFAOInteractionVolume<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum
         {
             wPhaseIdx = Indices::wPhaseIdx,
@@ -92,8 +92,8 @@ template<class TypeTag> class FvMpfaO2dPressureVelocity2p: public FvMpfaO2dPress
             numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
         };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     //! Constructs a FvMpfaO2dPressureVelocity2p object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh
index 2c7906f973bcae9801823b17c4a99b6ae8cb40a3..4f1a74499aa6f89021283848ecc6ec4da109059d 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/mpfa/omethod/2dvelocity.hh
@@ -54,42 +54,42 @@ namespace Dumux
  */
 template<class TypeTag> class FvMpfaO2dVelocity2P
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::IndexSet IndexSet;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using IndexSet = typename GridView::IndexSet;
 
-    typedef typename Element::Geometry Geometry;
-    typedef typename Geometry::JacobianTransposed JacobianTransposed;
+    using Geometry = typename Element::Geometry;
+    using JacobianTransposed = typename Geometry::JacobianTransposed ;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef FVMPFAOInteractionVolume<TypeTag> InteractionVolume;
-    typedef std::vector<Dune::FieldVector<bool, 2 * dim> > InnerBoundaryVolumeFaces;
+    using InteractionVolume = FVMPFAOInteractionVolume<TypeTag>;
+    using InnerBoundaryVolumeFaces = std::vector<Dune::FieldVector<bool, 2*dim> >;
 
     enum
         {
@@ -113,10 +113,10 @@ template<class TypeTag> class FvMpfaO2dVelocity2P
             numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
         };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
     //! Constructs a FvMpfaO2dVelocity2P object
diff --git a/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh b/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh
index 1ce2569a00964c9c70e5a0b74fb7712d581c4ae1..3b05b54223ced7fbd490bf9ab51263d4a0d93656 100644
--- a/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh
+++ b/dumux/porousmediumflow/2p/sequential/diffusion/problem.hh
@@ -38,26 +38,26 @@ namespace Dumux
 template<class TypeTag>
 class DiffusionProblem2P: public OneModelProblem<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef OneModelProblem<TypeTag> ParentType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ParentType = OneModelProblem<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) PressureModel;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+    using PressureModel = typename GET_PROP_TYPE(TypeTag, PressureModel);
 
     // material properties
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     enum
     {
         dim = Grid::dimension, dimWorld = Grid::dimensionworld
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     // private!! copy constructor
     DiffusionProblem2P(const DiffusionProblem2P&)
diff --git a/dumux/porousmediumflow/2p/sequential/fluxdata.hh b/dumux/porousmediumflow/2p/sequential/fluxdata.hh
index 798326f02fbc37828da978991e35f14b509ff0d4..c1db1ee417bd1f1b5e3faa96f976e51eeec6ea8b 100644
--- a/dumux/porousmediumflow/2p/sequential/fluxdata.hh
+++ b/dumux/porousmediumflow/2p/sequential/fluxdata.hh
@@ -41,15 +41,15 @@ template<class TypeTag>
 class FluxData2P
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -61,8 +61,8 @@ private:
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, 2 * dim> VelocityVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using VelocityVector = Dune::FieldVector<DimVector, 2*dim>;
 
     VelocityVector velocity_[numPhases];
     Scalar upwindPotential_[2 * dim][numPhases];
diff --git a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh
index 4082f391a13fdcb12633b1814513490364e7d695..04f07292c4a0bb48d232ff51d3633f06e9f7f51b 100644
--- a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh
+++ b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicator.hh
@@ -38,16 +38,16 @@ template<class TypeTag>
 class GridAdaptionIndicator2P
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
+    using ElementMapper = typename SolutionTypes::ElementMapper;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -141,7 +141,7 @@ public:
 
 #if HAVE_MPI
     // communicate updated values
-    typedef VectorExchange<ElementMapper, ScalarSolutionType> DataHandle;
+    using DataHandle = VectorExchange<ElementMapper, ScalarSolutionType>;
     DataHandle dataHandle(problem_.elementMapper(), indicatorVector_);
     problem_.gridView().template communicate<DataHandle>(dataHandle,
                                                          Dune::InteriorBorder_All_Interface,
diff --git a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocal.hh b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocal.hh
index 894a2de9b0c90015ef02457df5555afc136a1cb2..f425de8e11c91fddb4380e3319bd14643a2827bc 100644
--- a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocal.hh
+++ b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocal.hh
@@ -37,18 +37,18 @@ template<class TypeTag>
 class GridAdaptionIndicator2PLocal
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
diff --git a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocalflux.hh b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocalflux.hh
index 3ad50c590ffa1240eb9d88917439db246e773b05..c27580c2b964d726bc22b0abc3273f70192d021e 100644
--- a/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocalflux.hh
+++ b/dumux/porousmediumflow/2p/sequential/impes/gridadaptionindicatorlocalflux.hh
@@ -60,22 +60,22 @@ template<class TypeTag>
 class GridAdaptionIndicator2PLocalFlux
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename Grid::LevelGridView::IndexSet IndexSet;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using IndexSet = typename Grid::LevelGridView::IndexSet;
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -95,11 +95,11 @@ private:
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar,2> SetVector;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using SetVector = Dune::FieldVector<Scalar, 2>;
 
     struct SetField {
         Scalar indicator;
@@ -115,7 +115,7 @@ private:
         {return lhs.indicator<rhs.indicator;}
     };
 
-    typedef std::set<SetField, Comparison> RangeSet;
+    using RangeSet = std::set<SetField, Comparison>;
 
 public:
     /*! \brief Calculates the indicator used for refinement/coarsening for each grid cell.
@@ -209,7 +209,7 @@ public:
 
             const typename Element::Geometry& geometry = element.geometry();
             // get corresponding reference element
-            typedef Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+            using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
             const Dune::ReferenceElement< Scalar , dim > & refElement =
                     ReferenceElements::general( geometry.type() );
             const int numberOfFaces=refElement.size(1);
diff --git a/dumux/porousmediumflow/2p/sequential/impes/problem.hh b/dumux/porousmediumflow/2p/sequential/impes/problem.hh
index 384475e87cf857b986ebb51a2ca1f384075415a1..a8226673684227975979898386d90e2895889b3b 100644
--- a/dumux/porousmediumflow/2p/sequential/impes/problem.hh
+++ b/dumux/porousmediumflow/2p/sequential/impes/problem.hh
@@ -41,17 +41,17 @@ namespace Dumux
 template<class TypeTag>
 class IMPESProblem2P : public IMPETProblem<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef IMPETProblem<TypeTag> ParentType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ParentType = IMPETProblem<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     // material properties
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
 
 
     enum {
@@ -59,9 +59,9 @@ class IMPESProblem2P : public IMPETProblem<TypeTag>
         dimWorld = Grid::dimensionworld
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<Scalar, dimWorld>      GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     //Copy constructor
     IMPESProblem2P(const IMPESProblem2P &)
diff --git a/dumux/porousmediumflow/2p/sequential/properties.hh b/dumux/porousmediumflow/2p/sequential/properties.hh
index f4b83c725e81c5c3f5e0eb8eda1bd71fe2f45a54..c170e5621f6857d6713f9b865dc167cffb6e08b8 100644
--- a/dumux/porousmediumflow/2p/sequential/properties.hh
+++ b/dumux/porousmediumflow/2p/sequential/properties.hh
@@ -106,7 +106,7 @@ SET_INT_PROP(SequentialTwoP, Formulation, SequentialTwoPCommonIndices::pwsw);
 //! Chose the set of indices depending on the chosen formulation
 SET_PROP(SequentialTwoP, Indices)
 {
-    typedef SequentialTwoPIndices<GET_PROP_VALUE(TypeTag, Formulation), 0> type;
+    using type = SequentialTwoPIndices<GET_PROP_VALUE(TypeTag, Formulation), 0>;
 };
 
 //! Set the default pressure formulation according to the chosen two-phase formulation
@@ -137,10 +137,10 @@ SET_TYPE_PROP(SequentialTwoP, CellData, CellData2P<TypeTag, GET_PROP_VALUE(TypeT
 SET_PROP(SequentialTwoP, FluidState)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 public:
-    typedef IsothermalImmiscibleFluidState<Scalar, FluidSystem> type;
+    using type = IsothermalImmiscibleFluidState<Scalar, FluidSystem>;
 };
 
 //! The spatial parameters to be employed. Use SequentialFVSpatialParams by default.
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/capillarydiffusion.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/capillarydiffusion.hh
index 69ea8a5305fc2c011911d2549e3031cd7cb17dc7..3c559a60d0cd201ebb7800fc861ebbd7d21d55a2 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/capillarydiffusion.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/capillarydiffusion.hh
@@ -46,22 +46,22 @@ template<class TypeTag>
 class CapillaryDiffusion: public DiffusivePart<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-      typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-      typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+      using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+      using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-      typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-      typedef typename SpatialParams::MaterialLaw MaterialLaw;
+      using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+      using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-      typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-      typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+      using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+      using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-      typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+      using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-      typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-      typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-      typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+      using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+      using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+      using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
     enum
     {
@@ -73,10 +73,10 @@ private:
         pressEqIdx = Indices::pressureEqIdx
     };
 
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
+    using Intersection = typename GridView::Intersection;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/convectivepart.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/convectivepart.hh
index cf95718dffb3873062bb6318e07e645e62a1669a..905ee661c459085ecaa59513336f75f058e992bf 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/convectivepart.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/convectivepart.hh
@@ -38,13 +38,13 @@ template<class TypeTag>
 class ConvectivePart
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-      typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+      using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum{dimWorld = GridView::dimensionworld};
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dimWorld> DimVector;
+    using Intersection = typename GridView::Intersection;
+    using DimVector = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     //! For initialization
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/diffusivepart.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/diffusivepart.hh
index 00acb8edd4627aa4e42b4ec1f4f98875d145e978..ed431955b72b815f311c8220ef57cfdbc3590d35 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/diffusivepart.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/diffusivepart.hh
@@ -36,13 +36,13 @@ template<class TypeTag>
 class DiffusivePart
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-      typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+      using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum{dim = GridView::dimension};
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using Intersection = typename GridView::Intersection;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflflux.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflflux.hh
index 6187dce5f00ef1457c43d00404f83a90f34e8a63..3794a7cef185885e0c03f77e39625a7fc9a43993 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflflux.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflflux.hh
@@ -51,10 +51,10 @@ template<class TypeTag>
 class EvalCflFlux
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Intersection = typename GridView::Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh
index 625e6f0ef96d1139425e259c982ddb0986e748d4..8534a19d6b8708eed7a0bb485a87d629947d8e1c 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxcoats.hh
@@ -39,21 +39,21 @@ template<class TypeTag>
 class EvalCflFluxCoats: public EvalCflFlux<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
         {
@@ -76,12 +76,12 @@ private:
             sn = Indices::saturationNw
         };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, dimWorld> DimVector;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimVector = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
     //! \brief Initializes the cfl-flux-model
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxdefault.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxdefault.hh
index d32f9f858d35aa1cb6745f13ebca28b7b7bcfe0b..45dd9a2685475552ee9005666ccc8c4d70d46b50 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxdefault.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/evalcflfluxdefault.hh
@@ -40,11 +40,11 @@ template<class TypeTag>
 class EvalCflFluxDefault: public EvalCflFlux<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-      typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-      typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+      using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+      using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-      typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+      using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -56,8 +56,8 @@ private:
         vt = Indices::velocityTotal
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/gravitypart.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/gravitypart.hh
index b263f437b1f19127696477c2aba4afde1d119ba3..bc9b75577736ee16db658e7e7af7af17337ccbf2 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/gravitypart.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/gravitypart.hh
@@ -48,18 +48,18 @@ template<class TypeTag>
 class GravityPart: public ConvectivePart<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView)GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
     {
@@ -70,10 +70,10 @@ private:
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx, numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
+    using Intersection = typename GridView::Intersection;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
 
diff --git a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/saturation.hh b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/saturation.hh
index c4dcf281b57e4843253b19175825b59526bee633..643e507a0fe9a1f7404c3b9d1be8d1e06822da4e 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/cellcentered/saturation.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/cellcentered/saturation.hh
@@ -72,37 +72,37 @@ namespace Dumux
 template<class TypeTag>
 class FVSaturation2P: public FVTransport<TypeTag>
 {
-    typedef FVTransport<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) Implementation;
+    using ParentType = FVTransport<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, TransportModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Velocity) Velocity;
-    typedef typename GET_PROP_TYPE(TypeTag, CapillaryFlux) CapillaryFlux;
-    typedef typename GET_PROP_TYPE(TypeTag, GravityFlux) GravityFlux;
+    using Velocity = typename GET_PROP_TYPE(TypeTag, Velocity);
+    using CapillaryFlux = typename GET_PROP_TYPE(TypeTag, CapillaryFlux);
+    using GravityFlux = typename GET_PROP_TYPE(TypeTag, GravityFlux);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
     {
@@ -124,13 +124,13 @@ class FVSaturation2P: public FVTransport<TypeTag>
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
 protected:
     CapillaryFlux& capillaryFlux()
diff --git a/dumux/porousmediumflow/2p/sequential/transport/problem.hh b/dumux/porousmediumflow/2p/sequential/transport/problem.hh
index 7949971f9ddfc1114ec1145663334d5191ae6acf..7dba83eb952aa94169e44debe2889ad49fa00667 100644
--- a/dumux/porousmediumflow/2p/sequential/transport/problem.hh
+++ b/dumux/porousmediumflow/2p/sequential/transport/problem.hh
@@ -34,7 +34,7 @@ namespace Properties
 // Set the model properties
 SET_PROP(TransportTwoP, Model)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) type;
+    using type = typename GET_PROP_TYPE(TypeTag, TransportModel);
 };
 //this Property should be set by the pressure model, only for a pure transport it is set here for the transportproblem!
 SET_TYPE_PROP(TransportTwoP, Velocity, FVVelocityDefault<TypeTag>);
@@ -50,24 +50,24 @@ SET_TYPE_PROP(TransportTwoP, Velocity, FVVelocityDefault<TypeTag>);
 template<class TypeTag>
 class TransportProblem2P : public OneModelProblem<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef OneModelProblem<TypeTag> ParentType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ParentType = OneModelProblem<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
     // material properties
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution Solution;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using Solution = typename SolutionTypes::ScalarSolution;
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum {
         dim = Grid::dimension,
@@ -78,7 +78,7 @@ class TransportProblem2P : public OneModelProblem<TypeTag>
         transportEqIdx = Indices::transportEqIdx
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld>      GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     // private!! copy constructor
     TransportProblem2P(const TransportProblem2P&)
diff --git a/dumux/porousmediumflow/2p1c/indices.hh b/dumux/porousmediumflow/2p1c/indices.hh
index 6bd3e53b970df39299c7cdc9e88174b6d1474dd3..fbf8381a4cf7b7e9f2b8cc998df39808849d6e5d 100644
--- a/dumux/porousmediumflow/2p1c/indices.hh
+++ b/dumux/porousmediumflow/2p1c/indices.hh
@@ -52,7 +52,7 @@ struct TwoPOneCFormulation
 template <class TypeTag, int PVOffset = 0>
 class TwoPOneCIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Phase indices
diff --git a/dumux/porousmediumflow/2p2c/sequential/celldata.hh b/dumux/porousmediumflow/2p2c/sequential/celldata.hh
index 1676e4f333606de640cdba5935b63c9ceedd977b..8ef9ac6115a5108b8a795ba6e7e9802590301e4f 100644
--- a/dumux/porousmediumflow/2p2c/sequential/celldata.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/celldata.hh
@@ -44,11 +44,11 @@ template<class TypeTag>
 class CellData2P2C
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef FluxData2P2C<TypeTag> FluxData;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluxData = FluxData2P2C<TypeTag>;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
diff --git a/dumux/porousmediumflow/2p2c/sequential/celldataadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/celldataadaptive.hh
index 35f14a17d51c5398bc31b0076dfdf8e3c91e532d..b437c7e2e417135741a9e95890c0e4265766c394 100644
--- a/dumux/porousmediumflow/2p2c/sequential/celldataadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/celldataadaptive.hh
@@ -44,18 +44,18 @@ template<class TypeTag>
 class CellData2P2CAdaptive: public CellData2P2CMultiPhysics<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum
     {
         dim = GridView::dimension
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -66,7 +66,7 @@ private:
     {
         numPhases = GET_PROP_VALUE(TypeTag, NumPhases)
     };
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     //! gives kind of pressure used (\f$ 0 = p_w \f$, \f$ 1 = p_n \f$, \f$ 2 = p_{global} \f$)
     static constexpr int pressureType = GET_PROP_VALUE(TypeTag, PressureFormulation);
diff --git a/dumux/porousmediumflow/2p2c/sequential/celldatamultiphysics.hh b/dumux/porousmediumflow/2p2c/sequential/celldatamultiphysics.hh
index 074928dde19b41ccca77bb012ed58726ad73f69e..183ac7ec92965072b97cf07284e70e4b3c6e07c2 100644
--- a/dumux/porousmediumflow/2p2c/sequential/celldatamultiphysics.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/celldatamultiphysics.hh
@@ -45,12 +45,12 @@ template<class TypeTag>
 class CellData2P2CMultiPhysics : public CellData2P2C<TypeTag>
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef PseudoOnePTwoCFluidState<Scalar, FluidSystem> SimpleFluidState;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using SimpleFluidState = PseudoOnePTwoCFluidState<Scalar, FluidSystem>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
diff --git a/dumux/porousmediumflow/2p2c/sequential/fluxdata.hh b/dumux/porousmediumflow/2p2c/sequential/fluxdata.hh
index ac34bfdb061c4cf6f7d8d460fccb02d6d93e7d92..95346641bddecf0bbf307bfb80531352fdf1d6ac 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fluxdata.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fluxdata.hh
@@ -43,9 +43,9 @@ template<class TypeTag>
 class FluxData2P2C
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -69,8 +69,8 @@ private:
     };
 
     typename Dune::BlockVector<typename Dune::FieldVector<bool, numEquations>> isUpwindCell_;
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, 2 * dim> VelocityVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using VelocityVector = Dune::FieldVector<DimVector, 2*dim>;
     VelocityVector velocity_[numPhases];
 
 public:
diff --git a/dumux/porousmediumflow/2p2c/sequential/fv2dpressureadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv2dpressureadaptive.hh
index e9b69cf441081c31779dc15b07c31120ca9f531f..f81bbd910c87bcf1a5c1e5ef6cacf1b9c452f9b7 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fv2dpressureadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fv2dpressureadaptive.hh
@@ -75,16 +75,16 @@ template<class TypeTag> class FV2dPressure2P2CAdaptive
 : public FVPressure2P2C<TypeTag>
 {
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
-    typedef FVPressure<TypeTag> BaseType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using BaseType = FVPressure<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
@@ -104,20 +104,20 @@ template<class TypeTag> class FV2dPressure2P2CAdaptive
         rhs = BaseType::rhs, matrix = BaseType::matrix,
     };
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
+    // using declarations to abbreviate several dune classes...
+    using Intersection = typename GridView::Intersection;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
 
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar,dim+1> TransmissivityMatrix;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)> PhaseVector;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using TransmissivityMatrix = Dune::FieldVector<Scalar,dim+1>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)>;
 
     // the typenames used for the stiffness matrix and solution vector
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
 
-    typedef FvMpfaL2dTransmissibilityCalculator<TypeTag> TransmissibilityCalculator;
+    using TransmissibilityCalculator = FvMpfaL2dTransmissibilityCalculator<TypeTag>;
 protected:
     Problem& problem()
     {
diff --git a/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh
index 3c6d4721f38ffa0b390a1398e4800bed3086174a..b558bbf863423a205560b2bfb3bb4278d3cb5f0b 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fv2dtransportadaptive.hh
@@ -55,15 +55,15 @@ namespace Dumux
 template<class TypeTag>
 class FV2dTransport2P2CAdaptive : public FVTransport2P2C<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
     enum
     {
@@ -82,19 +82,19 @@ class FV2dTransport2P2CAdaptive : public FVTransport2P2C<TypeTag>
         contiWEqIdx=Indices::contiWEqIdx, contiNEqIdx=Indices::contiNEqIdx
     };
 
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar,dim+1> TransmissivityMatrix;
-    typedef Dune::FieldVector<Scalar, NumPhases> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using TransmissivityMatrix = Dune::FieldVector<Scalar,dim+1>;
+    using PhaseVector = Dune::FieldVector<Scalar, NumPhases>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     //! Acess function for the current problem
     Problem& problem()
     { return problem_; }
 
-    typedef typename FVTransport2P2C<TypeTag>::LocalTimesteppingData LocalTimesteppingData;
+    using LocalTimesteppingData = typename FVTransport2P2C<TypeTag>::LocalTimesteppingData;
 
 public:
     virtual void update(const Scalar t, Scalar& dt, TransportSolutionType& updateVec, bool impes = false);
@@ -302,9 +302,9 @@ void FV2dTransport2P2CAdaptive<TypeTag>::update(const Scalar t, Scalar& dt, Tran
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > > DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >;
     for (int i = 0; i < updateVec.size(); i++)
     {
         DataHandle dataHandle(problem_.variables().elementMapper(), updateVec[i]);
diff --git a/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh
index 7c5703e209a0de664cab18b1149b3416844e4808..3b684c54e78d48c9c2ad188cad395bb96078031a 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fv3dpressureadaptive.hh
@@ -78,25 +78,25 @@ template<class TypeTag> class FV3dPressure2P2CAdaptive
 : public FVPressure2P2CMultiPhysics<TypeTag>
 {
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
-    typedef FVPressure2P2CMultiPhysics<TypeTag> ParentType;
-    typedef FVPressure<TypeTag> BaseType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using ParentType = FVPressure2P2CMultiPhysics<TypeTag>;
+    using BaseType = FVPressure<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld,
@@ -121,31 +121,31 @@ template<class TypeTag> class FV3dPressure2P2CAdaptive
         rhs = BaseType::rhs, matrix = BaseType::matrix,
     };
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef Dune::ReferenceElements<Scalar, dim> ReferenceElementContainer;
-    typedef Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    // using declarations to abbreviate several dune classes...
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using ReferenceElementContainer = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
+    using Grid = typename GridView::Grid;
+    using Intersection = typename GridView::Intersection;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
 
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar,dim+1> TransmissivityMatrix;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)> PhaseVector;
-    typedef Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumComponents)> ComponentVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using TransmissivityMatrix = Dune::FieldVector<Scalar,dim+1>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)>;
+    using ComponentVector = Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumComponents)>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     // the typenames used for the stiffness matrix and solution vector
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureRHSVector) RHSVector;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
+    using RHSVector = typename GET_PROP_TYPE(TypeTag, PressureRHSVector);
 
-    // Dumux MPFA typedefs
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer) InteractionVolumeContainer;
-    typedef typename InteractionVolumeContainer::InteractionVolume InteractionVolume;
+    // Dumux MPFA types
+    using InteractionVolumeContainer = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolumeContainer);
+    using InteractionVolume = typename InteractionVolumeContainer::InteractionVolume;
 
 protected:
     //! \cond \private
@@ -230,10 +230,10 @@ public:
         }
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureSolutionVector) PressureSolution;
-    typedef VectorExchange<ElementMapper, PressureSolution> DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using PressureSolution = typename GET_PROP_TYPE(TypeTag, PressureSolutionVector);
+    using DataHandle = VectorExchange<ElementMapper, PressureSolution>;
 
         DataHandle dataHandle(problem().variables().elementMapper(), this->pressure());
         problem().gridView().template communicate<DataHandle>(dataHandle,
@@ -379,7 +379,7 @@ void FV3dPressure2P2CAdaptive<TypeTag>::initializeMatrixRowSize()
     {
         //prepare map for additional cell-connection through mpfa
         std::multimap<int, int> addionalRelations;
-        typedef std::pair<int,int> IntPair;
+        using IntPair = std::pair<int,int>;
         std::pair<std::multimap<int,int>::iterator,std::multimap<int,int>::iterator> range;
         std::multimap<int,int>::iterator rangeIt;
 
diff --git a/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh
index 9cfb6cf4c602efcd23f39d9d0fcbe9b1650e3138..b687a9f5947ea72e80523e9a3d0501224fc4712b 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fv3dtransportadaptive.hh
@@ -52,22 +52,22 @@ namespace Dumux
 template<class TypeTag>
 class FV3dTransport2P2CAdaptive : public FVTransport2P2C<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
     enum
     {
@@ -88,16 +88,16 @@ class FV3dTransport2P2CAdaptive : public FVTransport2P2C<TypeTag>
         contiWEqIdx=Indices::contiWEqIdx, contiNEqIdx=Indices::contiNEqIdx
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using Intersection = typename GridView::Intersection;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
 
-    typedef Dune::FieldVector<Scalar,dim+1> TransmissivityMatrix;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, NumPhases> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using TransmissivityMatrix = Dune::FieldVector<Scalar,dim+1>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, NumPhases>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     //! Acess function for the current problem
     Problem& problem()
@@ -299,9 +299,9 @@ void FV3dTransport2P2CAdaptive<TypeTag>::update(const Scalar t, Scalar& dt,
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > > DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >;
     for (int i = 0; i < updateVec.size(); i++)
     {
         DataHandle dataHandle(problem().variables().elementMapper(), updateVec[i]);
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh b/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh
index 39b0bd1daba2e229c43be99ffa1fbdf723cbf739..25813496be713e069229caa762456af0e094c6eb 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvmpfal3dinteractionvolumecontaineradaptive.hh
@@ -46,38 +46,38 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaL3d2P2CInteractionVolumeContainerAdaptive : public FvMpfaL3dInteractionVolumeContainerAdaptive<TypeTag>
 {
-    typedef FvMpfaL3dInteractionVolumeContainerAdaptive<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = FvMpfaL3dInteractionVolumeContainerAdaptive<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-    typedef typename Dune::ReferenceElement<Scalar, dim> ReferenceElement;
+    using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+    using ReferenceElement = Dune::ReferenceElement<Scalar, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes)::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using PrimaryVariables = typename GET_PROP(TypeTag, SolutionTypes)::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridTypeIndices) GridTypeIndices;
+    using GridTypeIndices = typename GET_PROP_TYPE(TypeTag, GridTypeIndices);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename Element::Geometry ElementGeometry;
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using ElementGeometry = typename Element::Geometry;
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
 
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename Intersection::Geometry IntersectionGeometry;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
+    using Intersection = typename GridView::Intersection;
+    using IntersectionGeometry = typename Intersection::Geometry;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
 
     enum
     {
@@ -94,10 +94,10 @@ class FvMpfaL3d2P2CInteractionVolumeContainerAdaptive : public FvMpfaL3dInteract
 
 public:
     //! Type for storing an MPFA-interaction-volume. (Usually of type FvMpfaL3dInteractionVolume or FvMpfaL3dInteractionVolumeAdaptive)
-    typedef typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume) InteractionVolume;
+    using InteractionVolume = typename GET_PROP_TYPE(TypeTag, MPFAInteractionVolume);
 
-    typedef std::vector<InteractionVolume> GlobalInteractionVolumeVector;
-    typedef std::vector<Dune::FieldVector<Dune::FieldVector<Scalar, 2>, 2 * dim> > FaceAreaVector;
+    using GlobalInteractionVolumeVector = std::vector<InteractionVolume>;
+    using FaceAreaVector = std::vector<Dune::FieldVector<Dune::FieldVector<Scalar, 2>, 2*dim> >;
 
     void storeBoundaryInteractionVolume(InteractionVolume& interactionVolume, const Vertex& vertex);
 
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvpressure.hh b/dumux/porousmediumflow/2p2c/sequential/fvpressure.hh
index 1daa1c96bc5959fedc89e00e59b0f29b2ae980ce..3b9473ae41471736846cd4bd6a680ae8e615181f 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvpressure.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvpressure.hh
@@ -72,22 +72,22 @@ template<class TypeTag> class FVPressure2P2C
 : public FVPressureCompositional<TypeTag>
 {
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
@@ -116,22 +116,22 @@ template<class TypeTag> class FVPressure2P2C
 
     };
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    // using declarations to abbreviate several dune classes...
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     // the typenames used for the stiffness matrix and solution vector
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
 
 protected:
     //! @copydoc FVPressure::EntryType
-    typedef Dune::FieldVector<Scalar, 2> EntryType;
+    using EntryType = Dune::FieldVector<Scalar, 2>;
 
     Problem& problem()
     {
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvpressurecompositional.hh b/dumux/porousmediumflow/2p2c/sequential/fvpressurecompositional.hh
index 6c61d1d7e21c1e2e6650ea28a21bd67c0d378fec..ff73988ed947717ddccad4d9379abad1d0e5a519 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvpressurecompositional.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvpressurecompositional.hh
@@ -66,23 +66,23 @@ template<class TypeTag> class FVPressureCompositional
 : public FVPressure<TypeTag>
 {
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
-    typedef FVPressure<TypeTag> ParentType;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using ParentType = FVPressure<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
     ///@cond false
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams)::MaterialLaw MaterialLaw;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, SpatialParams)::MaterialLaw;
     ///@endcond
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
@@ -104,13 +104,13 @@ template<class TypeTag> class FVPressureCompositional
         numComponents = GET_PROP_VALUE(TypeTag, NumComponents)
     };
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    // using declarations to abbreviate a dune class...
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     //the variables object is initialized, non-compositional before and compositional after first pressure calculation
@@ -167,7 +167,7 @@ public:
     template<class MultiWriter>
     void addOutputVtkFields(MultiWriter &writer)
     {
-        typedef typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution ScalarSolutionType;
+        using ScalarSolutionType = typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution;
         int size = problem_.gridView().size(0);
         ScalarSolutionType *pressureW = writer.allocateManagedBuffer(size);
         ScalarSolutionType *pressureN = writer.allocateManagedBuffer(size);
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh b/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh
index 4d571d30c57a54dbacd304d448860574c3334686..5b7ef2fa49746e220144077e3fe6714bbca72b77 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvpressuremultiphysics.hh
@@ -67,22 +67,22 @@ namespace Dumux
 template<class TypeTag>
 class FVPressure2P2CMultiPhysics : public FVPressure2P2C<TypeTag>
 {
-    typedef FVPressure2P2C<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = FVPressure2P2C<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
@@ -98,19 +98,19 @@ class FVPressure2P2CMultiPhysics : public FVPressure2P2C<TypeTag>
         contiWEqIdx = Indices::contiWEqIdx, contiNEqIdx = Indices::contiNEqIdx
     };
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Grid Grid;
-    typedef typename GridView::Intersection Intersection;
+    // using declarations to abbreviate several dune classes...
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Grid = typename GridView::Grid;
+    using Intersection = typename GridView::Intersection;
 
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, GET_PROP_VALUE(TypeTag, NumPhases)>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     //! @copydoc FVPressure::EntryType
-    typedef Dune::FieldVector<Scalar, 2> EntryType;
+    using EntryType = Dune::FieldVector<Scalar, 2>;
 //! Access functions to the current problem object
     Problem& problem()
     {    return this->problem_;   }
@@ -215,8 +215,8 @@ public:
 
 protected:
     #if HAVE_MPI
-        typedef typename SolutionTypes::ElementMapper ElementMapper;
-        typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<int, 1> > > DataHandle;
+        using ElementMapper = typename SolutionTypes::ElementMapper;
+        using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<int, 1> > >;
     #endif
 
     // subdomain map
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh b/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh
index 14e17a45b59f3c294683a8e2a35c8abba8887484..8df79415c483b10d40792e78a3cfb965d88149e2 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvtransport.hh
@@ -65,23 +65,23 @@ SET_INT_PROP(SequentialModel, TimeManagerSubTimestepVerbosity, 0);
 template<class TypeTag>
 class FVTransport2P2C
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) Implementation;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Implementation = typename GET_PROP_TYPE(TypeTag, TransportModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
     enum
     {
@@ -101,19 +101,19 @@ class FVTransport2P2C
         NumComponents = GET_PROP_VALUE(TypeTag, NumComponents)
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> DimMatrix;
-    typedef Dune::FieldVector<Scalar, NumPhases> PhaseVector;
-    typedef Dune::FieldVector<Scalar, NumComponents> ComponentVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using PhaseVector = Dune::FieldVector<Scalar, NumPhases>;
+    using ComponentVector = Dune::FieldVector<Scalar, NumComponents>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
 public:
     //! @copydoc FVPressure::EntryType
-    typedef Dune::FieldVector<Scalar, 2> EntryType;
-    typedef Dune::FieldVector<Scalar, 2> TimeStepFluxType;
+    using EntryType = Dune::FieldVector<Scalar, 2>;
+    using TimeStepFluxType = Dune::FieldVector<Scalar, 2>;
 
 protected:
     struct LocalTimesteppingData
@@ -173,7 +173,7 @@ public:
     {
         if(problem().vtkOutputLevel()>3)
         {
-            typedef typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution ScalarSolutionType;
+            using ScalarSolutionType = typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution;
             int size = problem_.gridView().size(0);
             ScalarSolutionType *totalC1PV = writer.allocateManagedBuffer(size);
             ScalarSolutionType *totalC2PV = writer.allocateManagedBuffer(size);
@@ -474,9 +474,9 @@ void FVTransport2P2C<TypeTag>::update(const Scalar t, Scalar& dt,
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > > DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >;
     for (int i = 0; i < updateVec.size(); i++)
     {
         DataHandle dataHandle(problem_.variables().elementMapper(), updateVec[i]);
@@ -487,7 +487,7 @@ void FVTransport2P2C<TypeTag>::update(const Scalar t, Scalar& dt,
 
     if (localTimeStepping_)
     {
-        typedef VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> > TimeDataHandle;
+        using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >;
 
         TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_);
         problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle,
@@ -1210,7 +1210,7 @@ void FVTransport2P2C<TypeTag>::updatedTargetDt_(Scalar &dt)
         LocalTimesteppingData& localDataI = timeStepData_[eIdxGlobalI];
 
 
-        typedef std::unordered_map<int, Scalar > FaceDt;
+        using FaceDt = std::unordered_map<int, Scalar>;
         FaceDt faceDt;
 
         // run through all intersections with neighbors and boundary
@@ -1302,9 +1302,9 @@ void FVTransport2P2C<TypeTag>::updatedTargetDt_(Scalar &dt)
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> > TimeDataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >;
 
     TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_);
     problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle,
diff --git a/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh b/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh
index fe58afecb27d5a6f760dae9b05c683b6316baa4b..cd10c733e4e182b9fabf58bdc4e1775a21642420 100644
--- a/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/fvtransportmultiphysics.hh
@@ -54,15 +54,15 @@ namespace Dumux
 template<class TypeTag>
 class FVTransport2P2CMultiPhysics : public FVTransport2P2C<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
     enum
     {
@@ -74,14 +74,14 @@ class FVTransport2P2CMultiPhysics : public FVTransport2P2C<TypeTag>
         wCompIdx = Indices::wPhaseIdx, nCompIdx = Indices::nPhaseIdx
     };
 
-    typedef Dune::FieldVector<Scalar, 2> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+    using PhaseVector = Dune::FieldVector<Scalar, 2>;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
     //! Acess function for the current problem
     Problem& problem()
     { return this->problem_; }
 
-    typedef typename FVTransport2P2C<TypeTag>::LocalTimesteppingData LocalTimesteppingData;
+    using LocalTimesteppingData = typename FVTransport2P2C<TypeTag>::LocalTimesteppingData;
 
 public:
     virtual void update(const Scalar t, Scalar& dt, TransportSolutionType& updateVec, bool impet = false);
@@ -233,9 +233,9 @@ void FVTransport2P2CMultiPhysics<TypeTag>::update(const Scalar t, Scalar& dt, Tr
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > > DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >;
     for (int i = 0; i < updateVec.size(); i++)
     {
         DataHandle dataHandle(problem().variables().elementMapper(), updateVec[i]);
diff --git a/dumux/porousmediumflow/2p2c/sequential/problem.hh b/dumux/porousmediumflow/2p2c/sequential/problem.hh
index aba849c3575517e75c9ca3dc11d1e000eb682a03..591480f7b0abf67af06f9764922ad09e5284d386 100644
--- a/dumux/porousmediumflow/2p2c/sequential/problem.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/problem.hh
@@ -42,19 +42,19 @@ namespace Dumux
 template<class TypeTag>
 class IMPETProblem2P2C : public IMPESProblem2P<TypeTag>
 {
-    typedef IMPESProblem2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using ParentType = IMPESProblem2P<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid                         Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)   Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
 
     // material properties
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams)    SpatialParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
 
     enum
     {
@@ -64,7 +64,7 @@ class IMPETProblem2P2C : public IMPESProblem2P<TypeTag>
         dimWorld = Grid::dimensionworld
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld>      GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/2p2c/sequential/properties.hh b/dumux/porousmediumflow/2p2c/sequential/properties.hh
index 8959267f6ea0b64cd12045aec1383d0c123b0481..e90a8d80eccadefa43b5c729356a8d6b39b1d695 100644
--- a/dumux/porousmediumflow/2p2c/sequential/properties.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/properties.hh
@@ -101,7 +101,7 @@ SET_PROP(SequentialTwoPTwoC, NumPhases) //!< The number of phases in the 2p2c mo
 {
     // the property is declared in dumux/porousmediumflow/sequential/properties.hh
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     static const int value = FluidSystem::numPhases;
@@ -112,7 +112,7 @@ public:
 SET_PROP(SequentialTwoPTwoC, NumComponents) //!< The number of components in the 2p2c model is 2
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     static const int value = FluidSystem::numComponents;
@@ -135,9 +135,9 @@ SET_INT_PROP(SequentialTwoPTwoC,
 
 SET_PROP(SequentialTwoPTwoC, TransportSolutionType)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     //! type for vector of vector (of scalars)
-    typedef typename Dune::BlockVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> > > type;
+    using type = Dune::BlockVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> > >;
 
 };
 
@@ -179,7 +179,7 @@ template <class TypeTag>
 struct SequentialTwoPTwoCIndices : public SequentialTwoPCommonIndices
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Component indices
diff --git a/dumux/porousmediumflow/2p2c/sequential/variableclassadaptive.hh b/dumux/porousmediumflow/2p2c/sequential/variableclassadaptive.hh
index 22e498d3da44117d970dbe5c8e9ea1366ae20368..0c8dcd47b9f823e791d7d64de4ee3efcd723ccdb 100644
--- a/dumux/porousmediumflow/2p2c/sequential/variableclassadaptive.hh
+++ b/dumux/porousmediumflow/2p2c/sequential/variableclassadaptive.hh
@@ -49,19 +49,19 @@ template<class TypeTag>
 class VariableClass2P2CAdaptive: public VariableClassAdaptive<TypeTag>
 {
 private:
-    typedef VariableClassAdaptive<TypeTag> ParentType;
-    typedef VariableClass<TypeTag> BaseType;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename CellData::AdaptedValues AdaptedValues;
-
-    typedef typename GridView::Grid Grid;
-    typedef typename Grid::LocalIdSet::IdType IdType;
-    typedef typename GridView::IntersectionIterator IntersectionIterator;
-    typedef typename GridView::Intersection Intersection;
+    using ParentType = VariableClassAdaptive<TypeTag>;
+    using BaseType = VariableClass<TypeTag>;
+
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using AdaptedValues = typename CellData::AdaptedValues;
+
+    using Grid = typename GridView::Grid;
+    using IdType = typename Grid::LocalIdSet::IdType;
+    using IntersectionIterator = typename GridView::IntersectionIterator;
+    using Intersection = typename GridView::Intersection;
     enum
     {
         dim = GridView::dimension
@@ -74,8 +74,8 @@ private:
         diagonal2 = 3
     };
     // convenience shortcuts for Vectors/Matrices
-    typedef Dune::FieldVector<Scalar, GridView::dimensionworld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar,dim+1> TransmissivityMatrix;
+    using GlobalPosition = Dune::FieldVector<Scalar, GridView::dimensionworld>;
+    using TransmissivityMatrix = Dune::FieldVector<Scalar,dim+1>;
 
 protected:
     /** in the 2D case, we need to store 1 additional cell. In 3D, we store
diff --git a/dumux/porousmediumflow/2pnc/indices.hh b/dumux/porousmediumflow/2pnc/indices.hh
index 67449052cf4ef7b1f7b18f23551eff4d50e199c8..d4094abe8ddbfb8cfeba488c1c5199d9e433ade9 100644
--- a/dumux/porousmediumflow/2pnc/indices.hh
+++ b/dumux/porousmediumflow/2pnc/indices.hh
@@ -50,7 +50,7 @@ struct TwoPNCFormulation
 template <class TypeTag, int PVOffset = 0>
 class TwoPNCIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Phase indices
diff --git a/dumux/porousmediumflow/2pnc/model.hh b/dumux/porousmediumflow/2pnc/model.hh
index 39389bbda3c7bfc43afd603279a44952d2027eab..6de3a09371a6f5d0441bf33f052308d2e9af83de 100644
--- a/dumux/porousmediumflow/2pnc/model.hh
+++ b/dumux/porousmediumflow/2pnc/model.hh
@@ -183,17 +183,17 @@ SET_TYPE_PROP(TwoPNCNI, IsothermalVtkOutputFields, TwoPNCVtkOutputFields<TypeTag
 SET_PROP(TwoPNCNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivitySomerton<Scalar, Indices> type;
+    using type = ThermalConductivitySomerton<Scalar, Indices>;
 };
 
 //! set isothermal NumEq
 SET_PROP(TwoPNCNI, IsothermalNumEq)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem)) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, PTAG(FluidSystem));
 
 public:
     static const int value = FluidSystem::numComponents;
diff --git a/dumux/porousmediumflow/3p/indices.hh b/dumux/porousmediumflow/3p/indices.hh
index 79e19b0c01333a3e92f016c28f841a1745a027d1..a645856f6188f1a345fa9d40ac45e0c6156ea8db 100644
--- a/dumux/porousmediumflow/3p/indices.hh
+++ b/dumux/porousmediumflow/3p/indices.hh
@@ -39,7 +39,7 @@ namespace Dumux
 template <class TypeTag, int PVOffset = 0>
 class ThreePIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Phase indices
diff --git a/dumux/porousmediumflow/3p/model.hh b/dumux/porousmediumflow/3p/model.hh
index 7f7125bc6517f4274022f82ce7c9756a4a2c06f3..a11d26a9b334b4cfa439b9686bfd754ab1cbdf46 100644
--- a/dumux/porousmediumflow/3p/model.hh
+++ b/dumux/porousmediumflow/3p/model.hh
@@ -89,7 +89,7 @@ NEW_TYPE_TAG(ThreePNI, INHERITS_FROM(ThreeP, NonIsothermal));
 SET_PROP(ThreeP, NumPhases)
 {
  private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
  public:
     static const int value = FluidSystem::numPhases;
@@ -100,7 +100,7 @@ SET_PROP(ThreeP, NumPhases)
 SET_PROP(ThreeP, NumComponents)
 {
  private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
  public:
     static const int value = FluidSystem::numComponents;
@@ -135,10 +135,10 @@ SET_TYPE_PROP(ThreeP, SpatialParams, FVSpatialParams<TypeTag>);
 SET_PROP(ThreeP, FluidState)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 public:
-    typedef ImmiscibleFluidState<Scalar, FluidSystem> type;
+    using type = ImmiscibleFluidState<Scalar, FluidSystem>;
 };
 
 //! Set the vtk output fields specific to the ThreeP model
@@ -153,10 +153,10 @@ SET_TYPE_PROP(ThreeP, VtkOutputFields, ThreePVtkOutputFields<TypeTag>);
 SET_PROP(ThreePNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivitySomerton<Scalar, Indices> type;
+    using type = ThermalConductivitySomerton<Scalar, Indices>;
 };
 
 //////////////////////////////////////////////////////////////////
diff --git a/dumux/porousmediumflow/3p/volumevariables.hh b/dumux/porousmediumflow/3p/volumevariables.hh
index 0c04f5964ed217bb6a309a32f6b55d7134c46378..c197fa49f0190dfd0eece569fea7c597f2749528 100644
--- a/dumux/porousmediumflow/3p/volumevariables.hh
+++ b/dumux/porousmediumflow/3p/volumevariables.hh
@@ -79,7 +79,7 @@ class ThreePVolumeVariables : public PorousMediumFlowVolumeVariables<TypeTag>
 
 public:
     //! The type of the object returned by the fluidState() method
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
 
     /*!
diff --git a/dumux/porousmediumflow/3p3c/indices.hh b/dumux/porousmediumflow/3p3c/indices.hh
index ec7525d8ddf39023f3b7c0dc64fc71ed3e23ac26..22ab8b423b94a1110c060644600aed65240d3860 100644
--- a/dumux/porousmediumflow/3p3c/indices.hh
+++ b/dumux/porousmediumflow/3p3c/indices.hh
@@ -40,7 +40,7 @@ namespace Dumux
 template <class TypeTag, int PVOffset = 0>
 class ThreePThreeCIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Phase indices
diff --git a/dumux/porousmediumflow/3p3c/model.hh b/dumux/porousmediumflow/3p3c/model.hh
index 6b6d4de935c41f820ae8a4c455890f8591ba6bb1..0cca188fcfd4ab4757e8a0cad3ebc436078319a4 100644
--- a/dumux/porousmediumflow/3p3c/model.hh
+++ b/dumux/porousmediumflow/3p3c/model.hh
@@ -143,10 +143,10 @@ SET_INT_PROP(ThreePThreeC, ReplaceCompEqIdx, GET_PROP_VALUE(TypeTag, NumComponen
  */
 SET_PROP(ThreePThreeC, FluidState){
     private:
-        typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-        typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+        using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     public:
-        typedef CompositionalFluidState<Scalar, FluidSystem> type;
+        using type = CompositionalFluidState<Scalar, FluidSystem>;
 };
 
 SET_INT_PROP(ThreePThreeC, NumEq, 3); //!< set the number of equations to 3
@@ -185,9 +185,9 @@ SET_TYPE_PROP(ThreePThreeC, SpatialParams, FVSpatialParams<TypeTag>);
 //! The model after Millington (1961) is used for the effective diffusivity
 SET_PROP(ThreePThreeC, EffectiveDiffusivityModel)
 { private :
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
  public:
-    typedef DiffusivityMillingtonQuirk<Scalar> type;
+    using type = DiffusivityMillingtonQuirk<Scalar>;
 };
 
 //! Set the vtk output fields specific to the ThreeP model
@@ -200,10 +200,10 @@ SET_BOOL_PROP(ThreePThreeC, UseMoles, true);
 SET_PROP(ThreePThreeCNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivitySomerton<Scalar, Indices> type;
+    using type = ThermalConductivitySomerton<Scalar, Indices>;
 };
 
 //////////////////////////////////////////////////////////////////
diff --git a/dumux/porousmediumflow/3pwateroil/fluxvariables.hh b/dumux/porousmediumflow/3pwateroil/fluxvariables.hh
index 865a42384583abed5c4b2a69a80868e849ea7697..96a6bd3df740cc2c8007d0feaa2a5685f61fc0ca 100644
--- a/dumux/porousmediumflow/3pwateroil/fluxvariables.hh
+++ b/dumux/porousmediumflow/3pwateroil/fluxvariables.hh
@@ -47,16 +47,16 @@ template <class TypeTag>
 class ThreePWaterOilFluxVariables : public GET_PROP_TYPE(TypeTag, BaseFluxVariables)
 {
     friend typename GET_PROP_TYPE(TypeTag, BaseFluxVariables); // be friends with base class
-    typedef typename GET_PROP_TYPE(TypeTag, BaseFluxVariables) BaseFluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using BaseFluxVariables = typename GET_PROP_TYPE(TypeTag, BaseFluxVariables);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, EffectiveDiffusivityModel) EffectiveDiffusivityModel;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using EffectiveDiffusivityModel = typename GET_PROP_TYPE(TypeTag, EffectiveDiffusivityModel);
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
 
     enum {
         dim = GridView::dimension,
@@ -65,14 +65,14 @@ class ThreePWaterOilFluxVariables : public GET_PROP_TYPE(TypeTag, BaseFluxVariab
         numComponents = GET_PROP_VALUE(TypeTag, NumComponents)
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
 
-    typedef Dune::FieldVector<Scalar, dim>  DimVector;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         wPhaseIdx = Indices::wPhaseIdx,
         nPhaseIdx = Indices::nPhaseIdx,
diff --git a/dumux/porousmediumflow/3pwateroil/indices.hh b/dumux/porousmediumflow/3pwateroil/indices.hh
index f72f14a577971340ae6b3cbc367efc76c0380757..3ac1b47ae70dc74cf6cc166d2580e5b3d3d97159 100644
--- a/dumux/porousmediumflow/3pwateroil/indices.hh
+++ b/dumux/porousmediumflow/3pwateroil/indices.hh
@@ -39,7 +39,7 @@ namespace Dumux
 template <class TypeTag, int PVOffset = 0>
 class ThreePWaterOilIndices
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     // Phase indices
diff --git a/dumux/porousmediumflow/3pwateroil/localresidual.hh b/dumux/porousmediumflow/3pwateroil/localresidual.hh
index a105a2ea3e4004fe4a559d1c6b8d566a0e8f1339..8aeea475c83e558acdfa18599aa31ffdad3b7ed9 100644
--- a/dumux/porousmediumflow/3pwateroil/localresidual.hh
+++ b/dumux/porousmediumflow/3pwateroil/localresidual.hh
@@ -42,14 +42,14 @@ template<class TypeTag>
 class ThreePWaterOilLocalResidual: public ThreePThreeCLocalResidual<TypeTag>
 {
 protected:
-    typedef typename GET_PROP_TYPE(TypeTag, LocalResidual) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, LocalResidual);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
 
 
     enum {
@@ -67,12 +67,12 @@ protected:
         nCompIdx = Indices::nCompIdx,
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     //! property that defines whether mole or mass fractions are used
     static const bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles);
diff --git a/dumux/porousmediumflow/3pwateroil/model.hh b/dumux/porousmediumflow/3pwateroil/model.hh
index 3ae7a164d077430b25209212a1f42d110b14ba6a..bbde1e52f266d3772bfda8bbac406dd9dfe93ad0 100644
--- a/dumux/porousmediumflow/3pwateroil/model.hh
+++ b/dumux/porousmediumflow/3pwateroil/model.hh
@@ -82,19 +82,19 @@ namespace Dumux
 template<class TypeTag>
 class ThreePWaterOilModel: public GET_PROP_TYPE(TypeTag, BaseModel)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, BaseModel) ParentType;
+    using ParentType = typename GET_PROP_TYPE(TypeTag, BaseModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum {
         dim = GridView::dimension,
@@ -125,10 +125,10 @@ class ThreePWaterOilModel: public GET_PROP_TYPE(TypeTag, BaseModel)
     };
 
 
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Element = typename GridView::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     static const bool useMoles = GET_PROP_VALUE(TypeTag, UseMoles);
 
@@ -272,8 +272,8 @@ public:
     void addOutputVtkFields(const SolutionVector &sol,
                             MultiWriter &writer)
     {
-        typedef Dune::BlockVector<Dune::FieldVector<double, 1> > ScalarField;
-        typedef Dune::BlockVector<Dune::FieldVector<double, dim> > VectorField;
+        using ScalarField = Dune::BlockVector< Dune::FieldVector<double, 1> >;
+        using VectorField = Dune::BlockVector<Dune::FieldVector<double, dim> >;
 
         // get the number of degrees of freedom
         unsigned numDofs = this->numDofs();
diff --git a/dumux/porousmediumflow/3pwateroil/newtoncontroller.hh b/dumux/porousmediumflow/3pwateroil/newtoncontroller.hh
index 033fc13a275c8eabc714a47c6422da1e0083e7ba..419cf1d45b404d4cbd84c53ae4ac8691fcb444db 100644
--- a/dumux/porousmediumflow/3pwateroil/newtoncontroller.hh
+++ b/dumux/porousmediumflow/3pwateroil/newtoncontroller.hh
@@ -43,9 +43,9 @@ namespace Dumux {
 template <class TypeTag>
 class ThreePWaterOilNewtonController : public NewtonController<TypeTag>
 {
-    typedef NewtonController<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
+    using ParentType = NewtonController<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
 
 public:
     ThreePWaterOilNewtonController(const Problem &problem)
diff --git a/dumux/porousmediumflow/3pwateroil/propertydefaults.hh b/dumux/porousmediumflow/3pwateroil/propertydefaults.hh
index 317152fae99b46a2d6d2f49b89ee1ca316879345..3de1dacb7653b8b5e4d6e584050f5d7525acac6a 100644
--- a/dumux/porousmediumflow/3pwateroil/propertydefaults.hh
+++ b/dumux/porousmediumflow/3pwateroil/propertydefaults.hh
@@ -59,7 +59,7 @@ namespace Properties {
 SET_PROP(ThreePWaterOilNI, NumComponents)
 {
  private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
  public:
     static const int value = FluidSystem::numComponents;
@@ -77,7 +77,7 @@ SET_PROP(ThreePWaterOilNI, NumComponents)
 SET_PROP(ThreePWaterOilNI, NumPhases)
 {
  private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
  public:
     static const int value = FluidSystem::numPhases;
@@ -129,10 +129,10 @@ SET_SCALAR_PROP(ThreePWaterOilNI, SpatialParamsForchCoeff, 0.55);
 SET_PROP(ThreePWaterOilNI, ThermalConductivityModel)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 public:
-    typedef ThermalConductivitySomerton<Scalar, Indices> type;
+    using type = ThermalConductivitySomerton<Scalar, Indices>;
 };
 
 //! temperature is already written by the isothermal model
@@ -159,7 +159,7 @@ SET_PROP(ThreePWaterOilNI, IsothermalIndices)
 {
 
 public:
-    typedef ThreePWaterOilIndices<TypeTag, /*PVOffset=*/0> type;
+    using type = ThreePWaterOilIndices<TypeTag, /*PVOffset=*/0>;
 };
 
 //set isothermal NumEq
diff --git a/dumux/porousmediumflow/3pwateroil/volumevariables.hh b/dumux/porousmediumflow/3pwateroil/volumevariables.hh
index 80dba8d356ef90bf9475547d4adab09ea45b70d2..d87d3eb8a95b1761c6b7cd6f739f05305099c729 100644
--- a/dumux/porousmediumflow/3pwateroil/volumevariables.hh
+++ b/dumux/porousmediumflow/3pwateroil/volumevariables.hh
@@ -52,23 +52,23 @@ namespace Dumux
 template <class TypeTag>
 class ThreePWaterOilVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 {
-    typedef ImplicitVolumeVariables<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
+    using ParentType = ImplicitVolumeVariables<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
 
     // constraint solvers
-    typedef Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem> MiscibleMultiPhaseComposition;
-    typedef Dumux::ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
+    using MiscibleMultiPhaseComposition = Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem>;
+    using ComputeFromReferencePhase = Dumux::ComputeFromReferencePhase<Scalar, FluidSystem>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         dim = GridView::dimension,
 
@@ -97,7 +97,7 @@ class ThreePWaterOilVolumeVariables : public ImplicitVolumeVariables<TypeTag>
         wgPhaseOnly = Indices::wgPhaseOnly
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Element = typename GridView::template Codim<0>::Entity;
 
     static const Scalar R; // universial gas constant
 
@@ -106,7 +106,7 @@ class ThreePWaterOilVolumeVariables : public ImplicitVolumeVariables<TypeTag>
 
 public:
     //! The type of the object returned by the fluidState() method
-    typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState;
+    using FluidState = Dumux::CompositionalFluidState<Scalar, FluidSystem>;
 
 
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/diffusion/diffusion.hh b/dumux/porousmediumflow/mpnc/implicit/diffusion/diffusion.hh
index 7e04405c001023041753f957443040d8ddf57170..7189c1db2bbf166a5c0689c1715ffe8f156450ae 100644
--- a/dumux/porousmediumflow/mpnc/implicit/diffusion/diffusion.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/diffusion/diffusion.hh
@@ -40,17 +40,17 @@ namespace Dumux {
 template <class TypeTag, bool enableDiffusion>
 class MPNCDiffusion
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents)};
     enum { nPhaseIdx = FluidSystem::nPhaseIdx };
     enum { wPhaseIdx = FluidSystem::wPhaseIdx };
     enum { nCompIdx = FluidSystem::nCompIdx };
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef Dune::FieldMatrix<Scalar, numComponents, numComponents> ComponentMatrix;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ComponentMatrix = Dune::FieldMatrix<Scalar, numComponents, numComponents>;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
 
@@ -183,9 +183,9 @@ class MPNCDiffusion<TypeTag, false>
 {
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef Dune::FieldVector<Scalar, numComponents>        ComponentVector;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     static void flux(ComponentVector &fluxes,
diff --git a/dumux/porousmediumflow/mpnc/implicit/diffusion/fluxvariables.hh b/dumux/porousmediumflow/mpnc/implicit/diffusion/fluxvariables.hh
index aa158b41066d830e3cf835389246b708d8976ae6..d98fdac9f8b489514cadd7ca6e1aba9d33fba9ef 100644
--- a/dumux/porousmediumflow/mpnc/implicit/diffusion/fluxvariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/diffusion/fluxvariables.hh
@@ -38,14 +38,14 @@ namespace Dumux {
 template<class TypeTag, bool enableDiffusion>
 class MPNCFluxVariablesDiffusion
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
 
     enum{dim = GridView::dimension};
     enum{dimWorld = GridView::dimensionworld};
@@ -54,8 +54,8 @@ class MPNCFluxVariablesDiffusion
     enum{wPhaseIdx = FluidSystem::wPhaseIdx};
     enum{nPhaseIdx = FluidSystem::nPhaseIdx};
 
-    typedef Dune::FieldVector<Scalar, dim>  DimVector;
-    typedef Dune::FieldVector<Scalar, dimWorld>  GlobalPosition;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     /*!
@@ -222,12 +222,12 @@ protected:
 template<class TypeTag>
 class MPNCFluxVariablesDiffusion<TypeTag, false>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/diffusion/volumevariables.hh b/dumux/porousmediumflow/mpnc/implicit/diffusion/volumevariables.hh
index 662b41e8994030a6809a71bdf811e6734199f05f..b2fc50cb4b3115b329154369d39430bf59e4df28 100644
--- a/dumux/porousmediumflow/mpnc/implicit/diffusion/volumevariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/diffusion/volumevariables.hh
@@ -37,12 +37,12 @@ namespace Dumux {
 template<class TypeTag, bool enableDiffusion>
 class MPNCVolumeVariablesDiffusion
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { wPhaseIdx = FluidSystem::wPhaseIdx };
@@ -148,12 +148,12 @@ protected:
 template<class TypeTag>
 class MPNCVolumeVariablesDiffusion<TypeTag, false>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariables.hh b/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariables.hh
index 265bef607b35081d7e9590dfdc723afcde862665..5af08a341aa04f1296f315cf0a7017277964d15a 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariables.hh
@@ -46,14 +46,14 @@ class MPNCFluxVariablesEnergy
                   "No kinetic energy transfer module included, "
                   "but kinetic energy transfer enabled.");
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
 
 public:
     /*!
@@ -84,28 +84,28 @@ public:
 template <class TypeTag>
 class MPNCFluxVariablesEnergy<TypeTag, /*enableEnergy=*/true,  /*numEnergyEquations=*/1>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GridView::ctype CoordScalar;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using CoordScalar = typename GridView::ctype;
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum{dimWorld = GridView::dimensionworld};
     enum{dim = GridView::dimension};
     enum{nPhaseIdx = FluidSystem::nPhaseIdx};
     enum{wPhaseIdx = FluidSystem::wPhaseIdx};
 
-    typedef Dune::FieldVector<CoordScalar, dim>  DimVector;
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
-    typedef typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel) ThermalConductivityModel;
+    using DimVector = Dune::FieldVector<CoordScalar, dim>;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
+    using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariableskinetic.hh b/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariableskinetic.hh
index 4d45188a5e06c1ff738f4641f8896f5b3af4e44c..aecec74592897ecae0bb5981f248bff0d85cc17d 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariableskinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/fluxvariableskinetic.hh
@@ -39,23 +39,23 @@ namespace Dumux
 template <class TypeTag>
 class MPNCFluxVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/3>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices)  Indices;
-    typedef typename GridView::ctype CoordScalar;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using CoordScalar = typename GridView::ctype;
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum {dim = GridView::dimension};
     enum {dimWorld = GridView::dimensionworld};
     enum {numEnergyEqs             = Indices::numPrimaryEnergyVars};
 
-    typedef Dune::FieldVector<CoordScalar, dim>  DimVector;
-    typedef Dune::FieldVector<CoordScalar, dimWorld>  GlobalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename FVElementGeometry::SubControlVolume SCV;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
+    using DimVector = Dune::FieldVector<CoordScalar, dim>;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SCV = typename FVElementGeometry::SubControlVolume;
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
 
 public:
     /*!
@@ -126,16 +126,16 @@ private:
 template <class TypeTag>
 class MPNCFluxVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/2>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices)  Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)  Scalar;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::ctype CoordScalar;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using CoordScalar = typename GridView::ctype;
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum {dim = GridView::dimension};
     enum {dimWorld = GridView::dimensionworld};
@@ -144,11 +144,11 @@ class MPNCFluxVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquatio
     enum {nPhaseIdx             = FluidSystem::nPhaseIdx};
 
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld>  GlobalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename FVElementGeometry::SubControlVolume SCV;
-    typedef typename FVElementGeometry::SubControlVolumeFace SCVFace;
-    typedef typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel) ThermalConductivityModel;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using SCV = typename FVElementGeometry::SubControlVolume;
+    using SCVFace = typename FVElementGeometry::SubControlVolumeFace;
+    using ThermalConductivityModel = typename GET_PROP_TYPE(TypeTag, ThermalConductivityModel);
 
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/localresidual.hh b/dumux/porousmediumflow/mpnc/implicit/energy/localresidual.hh
index 42438fcc33ede9b4b4ed89a7b46574fab6aa9d5e..1c26b4c5415f3b2ce5208b55c06412ed3f011309 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/localresidual.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/localresidual.hh
@@ -44,16 +44,16 @@ class MPNCLocalResidualEnergy
                   "No kinetic energy transfer module included, "
                   "but kinetic energy transfer enabled.");
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents    = GET_PROP_VALUE(TypeTag, NumComponents) };
 
-    typedef typename Dune::FieldVector<Scalar, numComponents>  ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     /*!
@@ -123,20 +123,20 @@ public:
 template <class TypeTag>
 class MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/ 1 >
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { energyEqIdx = Indices::energyEqIdx };
 
-    typedef typename Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/localresidualkinetic.hh b/dumux/porousmediumflow/mpnc/implicit/energy/localresidualkinetic.hh
index 8d97ffc54f7f9a06603a8195da09dc19db1d01a3..80b988da48b4e022bc0eef2c8ad15810a0c3ce66 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/localresidualkinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/localresidualkinetic.hh
@@ -38,14 +38,14 @@ namespace Dumux
 template <class TypeTag>
 class MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/3>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents    = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -57,8 +57,8 @@ class MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquatio
     enum { wCompIdx         = FluidSystem::wCompIdx};
     enum { sPhaseIdx        = FluidSystem::sPhaseIdx};
 
-    typedef typename Dune::FieldVector<Scalar, numComponents>               ComponentVector;
-    typedef typename Dune::FieldMatrix<Scalar, numPhases, numComponents>    PhaseComponentMatrix;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using PhaseComponentMatrix = Dune::FieldMatrix<Scalar, numPhases, numComponents>;
 
 public:
     /*!
@@ -407,15 +407,15 @@ public:
 template <class TypeTag>
 class MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/2>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents    = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -432,12 +432,12 @@ class MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquatio
     enum { dim = GridView::dimension}; // Grid and world dimension
 
 
-    typedef typename Dune::FieldVector<Scalar, numComponents>               ComponentVector;
-    typedef typename Dune::FieldMatrix<Scalar, numPhases, numComponents>    PhaseComponentMatrix;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using PhaseComponentMatrix = Dune::FieldMatrix<Scalar, numPhases, numComponents>;
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BaseLocalResidual) ParentType;
-    typedef Dumux::Spline<Scalar> Spline;
+    using ParentType = typename GET_PROP_TYPE(TypeTag, BaseLocalResidual);
+    using Spline = Dumux::Spline<Scalar>;
 
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/volumevariables.hh b/dumux/porousmediumflow/mpnc/implicit/energy/volumevariables.hh
index f89c062fcd3b829966d6476501ebdf9357987e5b..51cc71e2360aa08cfa78182640f3fad67d800d10 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/volumevariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/volumevariables.hh
@@ -47,20 +47,20 @@ class MPNCVolumeVariablesEnergy
                   "No kinetic energy transfer module included, "
                   "but kinetic energy transfer enabled.");
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
+    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 Element = typename GridView::template Codim<0>::Entity;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
     enum {dimWorld=GridView::dimensionworld};
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 
 public:
@@ -125,25 +125,25 @@ public:
 template <class TypeTag>
 class MPNCVolumeVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/ 1 >
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { temperatureIdx   = Indices::temperatureIdx };
     enum { numEnergyEqs     = Indices::numPrimaryEnergyVars};
     enum { temperature0Idx = Indices::temperatureIdx };
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState)  FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
     enum { dimWorld = GridView::dimensionworld};
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/volumevariableskinetic.hh b/dumux/porousmediumflow/mpnc/implicit/energy/volumevariableskinetic.hh
index bc5595301a2e88f1c09c662925219e6a202ee446..680b1efdec9d7bcac517088da2875a5426ecd221 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/volumevariableskinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/volumevariableskinetic.hh
@@ -37,14 +37,14 @@ namespace Dumux
 template <class TypeTag>
 class MPNCVolumeVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/3>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { temperature0Idx = Indices::temperature0Idx };
@@ -60,8 +60,8 @@ class MPNCVolumeVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquat
      * If chemical equilibrium is not considered, we use the most
      * generic fluid state.
      */
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
 public:
     /*!
@@ -242,14 +242,14 @@ protected:
 template <class TypeTag>
 class MPNCVolumeVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/2>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { temperature0Idx = Indices::temperature0Idx };
@@ -265,8 +265,8 @@ class MPNCVolumeVariablesEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquat
      * If chemical equilibrium is not considered, we use the most
      * generic fluid state.
      */
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriter.hh b/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriter.hh
index 51cabb317e1ff8b8eb14e964243fc13b5e364762..84c1022f5a9c0eef5bba109f593cdd9d32c2a74f 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriter.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriter.hh
@@ -46,21 +46,21 @@ class MPNCVtkWriterEnergy : public MPNCVtkWriterModule<TypeTag>
                   "If you enable kinetic energy transfer between fluids, you"
                   "also have to enable the energy in general!");
 
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { dim = GridView::dimension };
 
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
     enum { dofCodim = isBox ? dim : 0 };
 
@@ -133,21 +133,21 @@ template<class TypeTag>
 class MPNCVtkWriterEnergy<TypeTag, /* enableEnergy = */ true, /* numEnergyEquations = */ 1 >
     : public MPNCVtkWriterModule<TypeTag>
 {
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { dim = GridView::dimension };
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
 
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
     enum { dofCodim = isBox ? dim : 0 };
 
diff --git a/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriterkinetic.hh b/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriterkinetic.hh
index b5c0ecd340b67755e413059013b04c1ed706ca77..1edbee712e7860d2e40311966eadb4313bc0f5b6 100644
--- a/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriterkinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/energy/vtkwriterkinetic.hh
@@ -44,17 +44,17 @@ template<class TypeTag>
 class MPNCVtkWriterEnergy<TypeTag, /*enableEnergy = */ true, /* numEnergyEquations = */ 3 >
     : public MPNCVtkWriterModule<TypeTag>
 {
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { dim = GridView::dimension };
     enum { dimWorld = GridView::dimensionworld };
@@ -68,14 +68,14 @@ class MPNCVtkWriterEnergy<TypeTag, /*enableEnergy = */ true, /* numEnergyEquatio
     enum { interfacialAreaOutput= GET_PROP_VALUE(TypeTag, VtkAddInterfacialArea) };
     enum { velocityOutput       = GET_PROP_VALUE(TypeTag, VtkAddVelocities) };
 
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
-    typedef typename ParentType::ComponentVector ComponentVector;
-    typedef std::array<ScalarVector, numEnergyEqs> EnergyEqVector;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
+    using ComponentVector = typename ParentType::ComponentVector;
+    using EnergyEqVector = std::array<ScalarVector, numEnergyEqs>;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> DimWorldVector;
-    typedef Dune::BlockVector<DimWorldVector> DimWorldField;
-    typedef std::array<DimWorldField, numPhases> PhaseDimWorldField;
+    using DimWorldVector = Dune::FieldVector<Scalar, dimWorld>;
+    using DimWorldField = Dune::BlockVector<DimWorldVector>;
+    using PhaseDimWorldField = std::array<DimWorldField, numPhases>;
 
 
 public:
@@ -289,18 +289,18 @@ template<class TypeTag>
 class MPNCVtkWriterEnergy<TypeTag, /*enableEnergy = */ true, /* numEnergyEquations = */ 2 >
     : public MPNCVtkWriterModule<TypeTag>
 {
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/2> LocalResidual;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using LocalResidual = MPNCLocalResidualEnergy<TypeTag, /*enableEnergy=*/true, /*numEnergyEquations=*/2>;
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { dim = GridView::dimension };
     enum { dimWorld = GridView::dimensionworld };
@@ -316,14 +316,14 @@ class MPNCVtkWriterEnergy<TypeTag, /*enableEnergy = */ true, /* numEnergyEquatio
     enum { interfacialAreaOutput= GET_PROP_VALUE(TypeTag, VtkAddInterfacialArea) };
     enum { velocityOutput       = GET_PROP_VALUE(TypeTag, VtkAddVelocities) };
 
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
-    typedef typename ParentType::ComponentVector ComponentVector;
-    typedef std::array<ScalarVector, numEnergyEqs> EnergyEqVector;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
+    using ComponentVector = typename ParentType::ComponentVector;
+    using EnergyEqVector = std::array<ScalarVector, numEnergyEqs>;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> DimWorldVector;
-    typedef Dune::BlockVector<DimWorldVector> DimWorldField;
-    typedef std::array<DimWorldField, numPhases> PhaseDimWorldField;
+    using DimWorldVector = Dune::FieldVector<Scalar, dimWorld>;
+    using DimWorldField = Dune::BlockVector<DimWorldVector>;
+    using PhaseDimWorldField = std::array<DimWorldField, numPhases>;
 
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/fluxvariables.hh b/dumux/porousmediumflow/mpnc/implicit/fluxvariables.hh
index c61277e54dc04f8f5aebd5501441d48a31936633..ac241ddb6e487f8df1c7d2da5fd3bf5dd980f05b 100644
--- a/dumux/porousmediumflow/mpnc/implicit/fluxvariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/fluxvariables.hh
@@ -52,14 +52,14 @@ class MPNCFluxVariables
     : public GET_PROP_TYPE(TypeTag, BaseFluxVariables)
 {
     friend typename GET_PROP_TYPE(TypeTag, BaseFluxVariables); // be friends with base class
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BaseFluxVariables) BaseFluxVariables;
+    using BaseFluxVariables = typename GET_PROP_TYPE(TypeTag, BaseFluxVariables);
 
     enum {dim= GridView::dimension};
     enum {dimWorld= GridView::dimensionworld};
@@ -68,11 +68,11 @@ class MPNCFluxVariables
     enum {enableKinetic = GET_PROP_VALUE(TypeTag, EnableKinetic)};
     enum {numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations)};
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef MPNCFluxVariablesDiffusion<TypeTag, enableDiffusion> FluxVariablesDiffusion;
-    typedef MPNCFluxVariablesEnergy<TypeTag, enableEnergy, numEnergyEquations> FluxVariablesEnergy;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluxVariablesDiffusion = MPNCFluxVariablesDiffusion<TypeTag, enableDiffusion>;
+    using FluxVariablesEnergy = MPNCFluxVariablesEnergy<TypeTag, enableEnergy, numEnergyEquations>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/indices.hh b/dumux/porousmediumflow/mpnc/implicit/indices.hh
index 506aec406324dc013078cb4af3e254ab448be32a..3c405d5811210d437fe7ad27a58840b5a00ef56e 100644
--- a/dumux/porousmediumflow/mpnc/implicit/indices.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/indices.hh
@@ -60,14 +60,14 @@ struct MPNCIndices :
                                  GET_PROP_VALUE(TypeTag, NumEnergyEquations)>
 {
 private:
-            typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+            using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
             enum { enableEnergy         = GET_PROP_VALUE(TypeTag, EnableEnergy) };
             enum { enableKinetic        = GET_PROP_VALUE(TypeTag, EnableKinetic) }; //mass transfer
             enum { numEnergyEquations  = GET_PROP_VALUE(TypeTag, NumEnergyEquations) }; // energy transfer
             enum { numPhases = FluidSystem::numPhases };
 
-            typedef MPNCMassIndices<BasePVOffset, TypeTag, enableKinetic> MassIndices;
-            typedef MPNCEnergyIndices<BasePVOffset + MassIndices::numPrimaryVars, enableEnergy, numEnergyEquations> EnergyIndices;
+            using MassIndices = MPNCMassIndices<BasePVOffset, TypeTag, enableKinetic>;
+            using EnergyIndices = MPNCEnergyIndices<BasePVOffset + MassIndices::numPrimaryVars, enableEnergy, numEnergyEquations>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/localresidual.hh b/dumux/porousmediumflow/mpnc/implicit/localresidual.hh
index 3e7fd6e8cac0a6d1dcedf4985683bf084b9565cd..93c2154363835e24e6bb3ddd55a21fc13dce06f5 100644
--- a/dumux/porousmediumflow/mpnc/implicit/localresidual.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/localresidual.hh
@@ -45,12 +45,12 @@ namespace Dumux
 template<class TypeTag>
 class MPNCLocalResidual : public GET_PROP_TYPE(TypeTag, BaseLocalResidual)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 protected:
-    typedef typename GET_PROP_TYPE(TypeTag, LocalResidual) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, BaseLocalResidual) ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, LocalResidual);
+    using ParentType = typename GET_PROP_TYPE(TypeTag, BaseLocalResidual);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum {numPhases = GET_PROP_VALUE(TypeTag, NumPhases)};
     enum {numComponents = GET_PROP_VALUE(TypeTag, NumComponents)};
@@ -60,17 +60,17 @@ protected:
     enum {enableKinetic = GET_PROP_VALUE(TypeTag, EnableKinetic)};
     enum {phase0NcpIdx = Indices::phase0NcpIdx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
-    typedef MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations> EnergyResid;
-    typedef MPNCLocalResidualMass<TypeTag, enableKinetic> MassResid;
+    using EnergyResid = MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations>;
+    using MassResid = MPNCLocalResidualMass<TypeTag, enableKinetic>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/localresidual.hh b/dumux/porousmediumflow/mpnc/implicit/mass/localresidual.hh
index 5c74cc1479bb1b138dd3f2f6872a28ea3066de34..f8aa51b5f6e0ceea20d408dcc1e41de233b9e259 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/localresidual.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/localresidual.hh
@@ -43,9 +43,9 @@ template<class TypeTag>
 class MPNCLocalResidualMassCommon
 {
 protected:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents    = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -53,9 +53,9 @@ protected:
     enum { enableEnergy     = GET_PROP_VALUE(TypeTag, EnableEnergy) };
     enum { numEnergyEquations     = GET_PROP_VALUE(TypeTag, NumEnergyEquations) };
 
-    typedef typename Dune::FieldVector<Scalar, numComponents> ComponentVector;
-    typedef MPNCDiffusion<TypeTag, enableDiffusion> Diffusion;
-    typedef MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations> EnergyResid;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using Diffusion = MPNCDiffusion<TypeTag, enableDiffusion>;
+    using EnergyResid = MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations>;
 
 public:
     /*!
@@ -246,13 +246,13 @@ class MPNCLocalResidualMass
                   "No kinetic mass transfer module included, "
                   "but kinetic mass transfer enabled.");
 
-    typedef MPNCLocalResidualMassCommon<TypeTag> MassCommon;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
+    using MassCommon = MPNCLocalResidualMassCommon<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
 
     enum { numPhases        = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents    = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -260,8 +260,8 @@ class MPNCLocalResidualMass
     enum { enableEnergy     = GET_PROP_VALUE(TypeTag, EnableEnergy) };
     enum { numEnergyEquations     = GET_PROP_VALUE(TypeTag, NumEnergyEquations) };
 
-    typedef typename Dune::FieldVector<Scalar, numComponents> ComponentVector;
-    typedef MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations> EnergyResid;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using EnergyResid = MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/localresidualkinetic.hh b/dumux/porousmediumflow/mpnc/implicit/mass/localresidualkinetic.hh
index 26a78094202dcedf402ff746788bbef125bf9e76..7de2dacf7be474ccb2752d8abdd0486cbf9d3f36 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/localresidualkinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/localresidualkinetic.hh
@@ -37,15 +37,15 @@ namespace Dumux
 template<class TypeTag>
 class MPNCLocalResidualMass<TypeTag, /*enableKinetic=*/true>
 {
-    typedef MPNCLocalResidualMassCommon<TypeTag> MassCommon;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using MassCommon = MPNCLocalResidualMassCommon<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
     enum { numPhases =  GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -58,8 +58,8 @@ class MPNCLocalResidualMass<TypeTag, /*enableKinetic=*/true>
     enum { numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations) };
     enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy) };
 
-    typedef MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations> EnergyResid;
-    typedef typename Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using EnergyResid = MPNCLocalResidualEnergy<TypeTag, enableEnergy, numEnergyEquations>;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
 
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/volumevariables.hh b/dumux/porousmediumflow/mpnc/implicit/mass/volumevariables.hh
index f0c6b3ce174e0aa1ec3807f0951f76e14cbbc4e1..a1c8bb4773289ce4b6329e18b7b72c038290c660 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/volumevariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/volumevariables.hh
@@ -41,26 +41,26 @@ class MPNCVolumeVariablesMass
                   "No kinetic mass transfer module included, "
                   "but kinetic mass transfer enabled.");
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, ConstraintSolver) ConstraintSolver;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using ConstraintSolver = typename GET_PROP_TYPE(TypeTag, ConstraintSolver);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { fug0Idx = Indices::fug0Idx };
     enum { dimWorld = GridView::dimensionworld};
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
 
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/volumevariableskinetic.hh b/dumux/porousmediumflow/mpnc/implicit/mass/volumevariableskinetic.hh
index e5c60fbbd096d8ef90fff197bd71823521b51fcb..48c9be57695fba99e2b43bde56007e1a026a610b 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/volumevariableskinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/volumevariableskinetic.hh
@@ -42,33 +42,33 @@ namespace Dumux
 template <class TypeTag>
 class MPNCVolumeVariablesMass<TypeTag, /*bool enableKinetic=*/true>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { moleFrac00Idx = Indices::moleFrac00Idx };
 
-    typedef typename Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     //     here,  we need a constraint solver, which gives me the composition of a phase, if the other one is given
-    typedef FluidSystemComputeFromReferencePhase<Scalar, FluidSystem> ConstraintReferencePhaseSolver;
+    using ConstraintReferencePhaseSolver = FluidSystemComputeFromReferencePhase<Scalar, FluidSystem>;
 
     //     here,  we need a constraint solver, which gives me the composition of all phases if p,T is given
-    typedef FluidSystemConstraintSolver<Scalar, FluidSystem> ConstraintSolver;
+    using ConstraintSolver = FluidSystemConstraintSolver<Scalar, FluidSystem>;
 
     //     this is the constraint solver that applies "fugacities"
-//    typedef MiscibleMultiPhaseComposition<Scalar, FluidSystem> ConstraintSolver;
+//    using ConstraintSolver = MiscibleMultiPhaseComposition<Scalar, FluidSystem>;
 public:
 
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriter.hh b/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriter.hh
index 62b9f51d47f302902690b80ea25173a970552988..895393781f2fcb774c1e5cc3ed22265f85f20ecb 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriter.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriter.hh
@@ -45,21 +45,21 @@ class MPNCVtkWriterMass : public MPNCVtkWriterModule<TypeTag>
                   "No kinetic mass transfer module included, "
                   "but kinetic mass transfer enabled.");
 
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { dim = GridView::dimension };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
     enum { dofCodim = isBox ? dim : 0 };
 
-    typedef typename ParentType::ComponentVector ComponentVector;
+    using ComponentVector = typename ParentType::ComponentVector;
     bool fugacityOutput_;
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriterkinetic.hh b/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriterkinetic.hh
index 73b0ba8c9d9c29338f17db1f91a115be691af5f0..81d46087a0d195c999c11f5f3421d888ce9b309e 100644
--- a/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriterkinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/mass/vtkwriterkinetic.hh
@@ -45,14 +45,14 @@ template<class TypeTag>
 class MPNCVtkWriterMass<TypeTag, /* enableKinetic = */ true>
     : public MPNCVtkWriterModule<TypeTag>
 {
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -63,11 +63,11 @@ class MPNCVtkWriterMass<TypeTag, /* enableKinetic = */ true>
 
     enum { xEquilOutput   = GET_PROP_VALUE(TypeTag, VtkAddxEquil) };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
-    typedef typename ParentType::ComponentVector ComponentVector;
-    typedef typename ParentType::PhaseComponentMatrix PhaseComponentMatrix;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
+    using ComponentVector = typename ParentType::ComponentVector;
+    using PhaseComponentMatrix = typename ParentType::PhaseComponentMatrix;
 
     bool deltaPOutput_;
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/model.hh b/dumux/porousmediumflow/mpnc/implicit/model.hh
index 82575820fc890801b73b68bfbccdfaf19769d130..d8b3deeca28eb2d33866185d29add88e3f0c6275 100644
--- a/dumux/porousmediumflow/mpnc/implicit/model.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/model.hh
@@ -111,18 +111,18 @@ namespace Dumux
 template<class TypeTag>
 class MPNCModel : public GET_PROP_TYPE(TypeTag, BaseModel)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, BaseModel) ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef Dumux::MPNCVtkWriter<TypeTag> MPNCVtkWriter;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using ParentType = typename GET_PROP_TYPE(TypeTag, BaseModel);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using MPNCVtkWriter = Dumux::MPNCVtkWriter<TypeTag>;
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     enum {enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy)};
     enum {enableDiffusion = GET_PROP_VALUE(TypeTag, EnableDiffusion)};
@@ -135,7 +135,7 @@ class MPNCModel : public GET_PROP_TYPE(TypeTag, BaseModel)
     enum { dimWorld = GridView::dimensionworld};
     enum { dim = GridView::dimension};
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/modelkinetic.hh b/dumux/porousmediumflow/mpnc/implicit/modelkinetic.hh
index 72557ef8483fb6ce88eb5132e764fefa0c0397ba..8e83016d68e523ebd6bdf1037cae39d409cf31ff 100644
--- a/dumux/porousmediumflow/mpnc/implicit/modelkinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/modelkinetic.hh
@@ -45,19 +45,19 @@ namespace Dumux
 template<class TypeTag>
 class MPNCModelKinetic : public MPNCModel<TypeTag>
 {
-    typedef MPNCModel<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > ScalarField;
-    typedef Dumux::MPNCVtkWriter<TypeTag> MPNCVtkWriter;
+    using ParentType = MPNCModel<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using ScalarField = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using MPNCVtkWriter = Dumux::MPNCVtkWriter<TypeTag>;
 
     enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy)};
     enum { enableDiffusion = GET_PROP_VALUE(TypeTag, EnableDiffusion)};
@@ -70,15 +70,15 @@ class MPNCModelKinetic : public MPNCModel<TypeTag>
     enum { dimWorld = GridView::dimensionworld};
     enum { dim = GridView::dimension};
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::BlockVector<GlobalPosition>                GlobalPositionField;
-    typedef std::array<GlobalPositionField, numPhases>      PhaseGlobalPositionField;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using GlobalPositionField = Dune::BlockVector<GlobalPosition>;
+    using PhaseGlobalPositionField = std::array<GlobalPositionField, numPhases>;
 
-    typedef std::vector<Dune::FieldVector<Scalar, 1> >  ScalarVector;
-    typedef std::array<ScalarVector, numPhases>         PhaseVector;
-    typedef Dune::FieldVector<Scalar, dim>              DimVector;
-    typedef Dune::BlockVector<DimVector>                DimVectorField;
-    typedef std::array<DimVectorField, numPhases>       PhaseDimVectorField;
+    using ScalarVector = std::vector<Dune::FieldVector<Scalar, 1>>;
+    using PhaseVector = std::array<ScalarVector, numPhases>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using DimVectorField = Dune::BlockVector<DimVector>;
+    using PhaseDimVectorField = std::array<DimVectorField, numPhases>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/newtoncontroller.hh b/dumux/porousmediumflow/mpnc/implicit/newtoncontroller.hh
index f6a030a36215e5896513cace4c1cadc28674366f..45695cbaa5fa22226fa9c124006862bc41a60af3 100644
--- a/dumux/porousmediumflow/mpnc/implicit/newtoncontroller.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/newtoncontroller.hh
@@ -42,9 +42,9 @@ namespace Dumux {
 template <class TypeTag, bool enableKinetic /* = false */>
 class MpNcNewtonChop
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
 
     enum { numPhases =  GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents =  GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -100,9 +100,9 @@ private:
 template <class TypeTag>
 class MpNcNewtonChop<TypeTag, /*enableKinetic=*/true>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
 
     enum { numPhases =  GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents =  GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -178,11 +178,11 @@ private:
 template <class TypeTag>
 class MPNCNewtonController : public NewtonController<TypeTag>
 {
-    typedef NewtonController<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = NewtonController<TypeTag>;
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum {numPhases = GET_PROP_VALUE(TypeTag, NumPhases)};
     enum {    numComponents = GET_PROP_VALUE(TypeTag, NumComponents)};
@@ -190,7 +190,7 @@ class MPNCNewtonController : public NewtonController<TypeTag>
     enum {p0Idx = Indices::p0Idx};
     enum {s0Idx = Indices::s0Idx};
 
-    typedef MpNcNewtonChop<TypeTag, enableKinetic> NewtonChop;
+    using NewtonChop = MpNcNewtonChop<TypeTag, enableKinetic>;
 
 public:
     MPNCNewtonController(const Problem &problem)
diff --git a/dumux/porousmediumflow/mpnc/implicit/propertydefaults.hh b/dumux/porousmediumflow/mpnc/implicit/propertydefaults.hh
index 708a466945791ade5ce7b1394b52473576a4d23d..dafbe583872e6389c3a40c4a7e34dfedce396df8 100644
--- a/dumux/porousmediumflow/mpnc/implicit/propertydefaults.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/propertydefaults.hh
@@ -60,7 +60,7 @@ namespace Properties
 SET_PROP(MPNC, NumComponents)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     static const unsigned int value = FluidSystem::numComponents;
@@ -72,7 +72,7 @@ public:
 SET_PROP(MPNC, NumPhases)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
     static const unsigned int value = FluidSystem::numPhases;
@@ -84,7 +84,7 @@ public:
 SET_PROP(MPNC, NumEq)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 public:
     static const unsigned int value = Indices::numPrimaryVars;
@@ -97,11 +97,11 @@ public:
 SET_PROP(MPNC, ConstraintSolver)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
 public:
-    typedef CompositionFromFugacities<Scalar, FluidSystem> type;
+    using type = CompositionFromFugacities<Scalar, FluidSystem>;
 };
 
 
@@ -113,7 +113,7 @@ SET_TYPE_PROP(MPNC,
 //! Use the MpNc specific newton controller for the MpNc model
 SET_PROP(MPNC, NewtonController)
 {public:
-    typedef MPNCNewtonController<TypeTag> type;
+    using type = MPNCNewtonController<TypeTag>;
 };
 
 //! the Model property
@@ -165,7 +165,7 @@ SET_TYPE_PROP(MPNC, SpatialParams, FVSpatialParams<TypeTag>);
 //! The VTK writer module for common quantities
 SET_PROP(MPNC, MPNCVtkCommonModule)
 {
-    typedef MPNCVtkWriterCommon<TypeTag> type;
+    using type = MPNCVtkWriterCommon<TypeTag>;
 };
 
 //! The VTK writer module for quantities which are specific for each
@@ -173,7 +173,7 @@ SET_PROP(MPNC, MPNCVtkCommonModule)
 SET_PROP(MPNC, MPNCVtkMassModule)
 {
 private: enum { enableKinetic = GET_PROP_VALUE(TypeTag, EnableKinetic) };
-public: typedef MPNCVtkWriterMass<TypeTag, enableKinetic> type;
+public: using type = MPNCVtkWriterMass<TypeTag, enableKinetic>;
 };
 
 //! The VTK writer module for quantities which are specific for each
@@ -184,20 +184,20 @@ private:
     enum { enableEnergy = GET_PROP_VALUE(TypeTag, EnableEnergy) };
     enum { numEnergyEquations = GET_PROP_VALUE(TypeTag, NumEnergyEquations) };
 public:
-    typedef MPNCVtkWriterEnergy<TypeTag, enableEnergy, numEnergyEquations> type;
+    using type = MPNCVtkWriterEnergy<TypeTag, enableEnergy, numEnergyEquations>;
 };
 
 //! Somerton is used as default model to compute the effective thermal heat conductivity
 SET_PROP(MPNC, ThermalConductivityModel)
 { private :
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
   public:
-    typedef ThermalConductivitySomerton<Scalar> type;
+    using type = ThermalConductivitySomerton<Scalar>;
 };
 
 //! The VTK writer for user specified data (does nothing by default)
 SET_PROP(MPNC, MPNCVtkCustomModule)
-{ typedef MPNCVtkWriterModule<TypeTag> type; };
+{ using type = MPNCVtkWriterModule<TypeTag>; };
 
 /*!
  * \brief The fluid state which is used by the volume variables to
@@ -207,10 +207,10 @@ SET_PROP(MPNC, MPNCVtkCustomModule)
  */
 SET_PROP(MPNC, FluidState){
     private:
-        typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-        typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+        using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+        using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     public:
-        typedef CompositionalFluidState<Scalar, FluidSystem> type;
+        using type = CompositionalFluidState<Scalar, FluidSystem>;
 };
 
 //! Set the default pressure formulation to the pressure of the (most) wetting phase
diff --git a/dumux/porousmediumflow/mpnc/implicit/propertydefaultskinetic.hh b/dumux/porousmediumflow/mpnc/implicit/propertydefaultskinetic.hh
index 684eb56989014bdd636f93bd88aafad531939417..5b7cd3696834bd0a9e4028190130b7e106097eb5 100644
--- a/dumux/porousmediumflow/mpnc/implicit/propertydefaultskinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/propertydefaultskinetic.hh
@@ -61,10 +61,10 @@ SET_TYPE_PROP(BoxMPNCKinetic, Model, MPNCModelKinetic<TypeTag>);
 SET_PROP(BoxMPNCKinetic, AwnSurfaceParams)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, AwnSurface) AwnSurface;
+    using AwnSurface = typename GET_PROP_TYPE(TypeTag, AwnSurface);
 
 public:
-    typedef typename AwnSurface::Params type;
+    using type = typename AwnSurface::Params;
 };
 
 /*!
@@ -74,10 +74,10 @@ public:
 SET_PROP(BoxMPNCKinetic, AwsSurfaceParams)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, AwsSurface) AwsSurface;
+    using AwsSurface = typename GET_PROP_TYPE(TypeTag, AwsSurface);
 
 public:
-    typedef typename AwsSurface::Params type;
+    using type = typename AwsSurface::Params;
 };
 
 /*!
@@ -87,10 +87,10 @@ public:
 SET_PROP(BoxMPNCKinetic, AnsSurfaceParams)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, AnsSurface) AnsSurface;
+    using AnsSurface = typename GET_PROP_TYPE(TypeTag, AnsSurface);
 
 public:
-    typedef typename AnsSurface::Params type;
+    using type = typename AnsSurface::Params;
 };
 
 SET_BOOL_PROP(BoxMPNCKinetic, VelocityAveragingInModel, true);
@@ -101,8 +101,8 @@ SET_BOOL_PROP(BoxMPNCKinetic, VelocityAveragingInModel, true);
  */
 SET_PROP(BoxMPNCKinetic, NusseltFormulation ){
     private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef  DimensionlessNumbers<Scalar> DimLessNum;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using DimLessNum = DimensionlessNumbers<Scalar>;
     public:
     static constexpr int value = DimLessNum::NusseltFormulation::WakaoKaguei;};
 
@@ -112,8 +112,8 @@ SET_PROP(BoxMPNCKinetic, NusseltFormulation ){
  */
 SET_PROP(BoxMPNCKinetic, SherwoodFormulation ){
     private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef  DimensionlessNumbers<Scalar> DimLessNum;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using DimLessNum = DimensionlessNumbers<Scalar>;
     public:
     static constexpr int value = DimLessNum::SherwoodFormulation::WakaoKaguei;};
 
diff --git a/dumux/porousmediumflow/mpnc/implicit/velomodelnewtoncontroller.hh b/dumux/porousmediumflow/mpnc/implicit/velomodelnewtoncontroller.hh
index 5eca1f2132079571f917987a77c7307233805b9b..0d1d70939b151227a26002d3a12ce6e202866f75 100644
--- a/dumux/porousmediumflow/mpnc/implicit/velomodelnewtoncontroller.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/velomodelnewtoncontroller.hh
@@ -42,9 +42,9 @@ namespace Dumux {
 template <class TypeTag>
 class VeloModelNewtonController : public MPNCNewtonController<TypeTag>
 {
-    typedef MPNCNewtonController<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = MPNCNewtonController<TypeTag>;
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum {velocityAveragingInModel  = GET_PROP_VALUE(TypeTag, VelocityAveragingInModel)};
 
diff --git a/dumux/porousmediumflow/mpnc/implicit/volumevariables.hh b/dumux/porousmediumflow/mpnc/implicit/volumevariables.hh
index 9a622a021099bee1875d2675fd4e6965ae5241d9..6a1a6bf59631208d0ac5e4c48c5fdadd6f60968d 100644
--- a/dumux/porousmediumflow/mpnc/implicit/volumevariables.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/volumevariables.hh
@@ -50,19 +50,19 @@ class MPNCVolumeVariables
     , public MPNCVolumeVariablesDiffusion<TypeTag, GET_PROP_VALUE(TypeTag, EnableDiffusion) || GET_PROP_VALUE(TypeTag, EnableKinetic)>
     , public MPNCVolumeVariablesEnergy<TypeTag, GET_PROP_VALUE(TypeTag, EnableEnergy), GET_PROP_VALUE(TypeTag, NumEnergyEquations)>
 {
-    typedef ImplicitVolumeVariables<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using ParentType = ImplicitVolumeVariables<TypeTag>;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 
     // formulations
@@ -81,11 +81,11 @@ class MPNCVolumeVariables
     enum {s0Idx = Indices::s0Idx};
     enum {p0Idx = Indices::p0Idx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef MPNCVolumeVariablesMass<TypeTag, enableKinetic> MassVolumeVariables;
-    typedef MPNCVolumeVariablesEnergy<TypeTag, enableEnergy, numEnergyEquations> EnergyVolumeVariables;
-    typedef MPNCVolumeVariablesIA<TypeTag, enableKinetic, numEnergyEquations> IAVolumeVariables;
-    typedef MPNCVolumeVariablesDiffusion<TypeTag, enableDiffusion> DiffusionVolumeVariables;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using MassVolumeVariables = MPNCVolumeVariablesMass<TypeTag, enableKinetic>;
+    using EnergyVolumeVariables = MPNCVolumeVariablesEnergy<TypeTag, enableEnergy, numEnergyEquations>;
+    using IAVolumeVariables = MPNCVolumeVariablesIA<TypeTag, enableKinetic, numEnergyEquations>;
+    using DiffusionVolumeVariables = MPNCVolumeVariablesDiffusion<TypeTag, enableDiffusion>;
 
 public:
     MPNCVolumeVariables()
diff --git a/dumux/porousmediumflow/mpnc/implicit/volumevariablesia.hh b/dumux/porousmediumflow/mpnc/implicit/volumevariablesia.hh
index fc7a6bfec5fa73bff704a2daa381fcb7354e78ba..afd22e012e56aa7c4a0475b1e6e4a5fea04fb09c 100644
--- a/dumux/porousmediumflow/mpnc/implicit/volumevariablesia.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/volumevariablesia.hh
@@ -47,18 +47,18 @@ class MPNCVolumeVariablesIA
                   "but no suitable specialization of the IA volume variables module "
                   "has been included.");
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     enum {dimWorld=GridView::dimensionworld};
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     /*!
diff --git a/dumux/porousmediumflow/mpnc/implicit/volumevariablesiakinetic.hh b/dumux/porousmediumflow/mpnc/implicit/volumevariablesiakinetic.hh
index a86bcc25bb31516edf74fc4de88ac115e9c10acf..5e5315197af95f23de72fe751bc4167917151300 100644
--- a/dumux/porousmediumflow/mpnc/implicit/volumevariablesiakinetic.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/volumevariablesiakinetic.hh
@@ -43,18 +43,18 @@ namespace Dumux
 template <class TypeTag, bool enableKinetic >
 class MPNCVolumeVariablesIA<TypeTag, enableKinetic, /*numEnergyEqs=*/3>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
 
 
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
@@ -72,19 +72,19 @@ class MPNCVolumeVariablesIA<TypeTag, enableKinetic, /*numEnergyEqs=*/3>
     enum { enableDiffusion = GET_PROP_VALUE(TypeTag, EnableDiffusion)} ;
 
 
-    typedef DimensionlessNumbers<Scalar> DimLessNum ;
+    using DimLessNum = DimensionlessNumbers<Scalar>;
 
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 
-    typedef typename GET_PROP_TYPE(TypeTag, AwnSurface) AwnSurface;
-    typedef typename AwnSurface::Params AwnSurfaceParams;
+    using AwnSurface = typename GET_PROP_TYPE(TypeTag, AwnSurface);
+    using AwnSurfaceParams = typename AwnSurface::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AwsSurface) AwsSurface;
-    typedef typename AwsSurface::Params AwsSurfaceParams;
+    using AwsSurface = typename GET_PROP_TYPE(TypeTag, AwsSurface);
+    using AwsSurfaceParams = typename AwsSurface::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AnsSurface) AnsSurface;
-    typedef typename AnsSurface::Params AnsSurfaceParams;
+    using AnsSurface = typename GET_PROP_TYPE(TypeTag, AnsSurface);
+    using AnsSurfaceParams = typename AnsSurface::Params;
 
 
 public:
@@ -335,17 +335,17 @@ private:
 template <class TypeTag>
 class MPNCVolumeVariablesIA<TypeTag, /*enableKinetic=*/false, /*numEnergyEqs=*/2>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { dim = GridView::dimension};
@@ -353,7 +353,7 @@ class MPNCVolumeVariablesIA<TypeTag, /*enableKinetic=*/false, /*numEnergyEqs=*/2
     enum { numEnergyEqs = Indices::numPrimaryEnergyVars};
     enum { nusseltFormulation = GET_PROP_VALUE(TypeTag, NusseltFormulation)} ;
 
-    typedef DimensionlessNumbers<Scalar> DimLessNum ;
+    using DimLessNum = DimensionlessNumbers<Scalar>;
 public:
     /*!
      * \brief Updates the volume specific interfacial area [m^2 / m^3] between the phases.
@@ -474,20 +474,20 @@ private:
 template <class TypeTag>
 class MPNCVolumeVariablesIA<TypeTag, /*enableKinetic=*/true, /*numEnergyEqs=*/0>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef DimensionlessNumbers<Scalar> DimLessNum;
-
-    typedef typename GET_PROP_TYPE(TypeTag, AwnSurface) AwnSurface;
-    typedef typename AwnSurface::Params AwnSurfaceParams;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using DimLessNum = DimensionlessNumbers<Scalar>;
+
+    using AwnSurface = typename GET_PROP_TYPE(TypeTag, AwnSurface);
+    using AwnSurfaceParams = typename AwnSurface::Params;
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { wPhaseIdx = FluidSystem::wPhaseIdx };
@@ -498,8 +498,8 @@ class MPNCVolumeVariablesIA<TypeTag, /*enableKinetic=*/true, /*numEnergyEqs=*/0>
     enum { dimWorld  = GridView::dimensionworld};
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { sherwoodFormulation = GET_PROP_VALUE(TypeTag, SherwoodFormulation)} ;
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
 
 
 public:
diff --git a/dumux/porousmediumflow/mpnc/implicit/vtkwriter.hh b/dumux/porousmediumflow/mpnc/implicit/vtkwriter.hh
index 539abc38c3996e26085dec146d8a6fe9fe39ac01..d532c0a56d2bae570f29745145ec1cfb0beaf6f8 100644
--- a/dumux/porousmediumflow/mpnc/implicit/vtkwriter.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/vtkwriter.hh
@@ -38,15 +38,15 @@ namespace Dumux
 template<class TypeTag>
 class MPNCVtkWriter
 {
-    typedef typename GET_PROP_TYPE(TypeTag, MPNCVtkCommonModule) MPNCVtkCommonModule;
-    typedef typename GET_PROP_TYPE(TypeTag, MPNCVtkMassModule) MPNCVtkMassModule;
-    typedef typename GET_PROP_TYPE(TypeTag, MPNCVtkEnergyModule) MPNCVtkEnergyModule;
-    typedef typename GET_PROP_TYPE(TypeTag, MPNCVtkCustomModule) MPNCVtkCustomModule;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using MPNCVtkCommonModule = typename GET_PROP_TYPE(TypeTag, MPNCVtkCommonModule);
+    using MPNCVtkMassModule = typename GET_PROP_TYPE(TypeTag, MPNCVtkMassModule);
+    using MPNCVtkEnergyModule = typename GET_PROP_TYPE(TypeTag, MPNCVtkEnergyModule);
+    using MPNCVtkCustomModule = typename GET_PROP_TYPE(TypeTag, MPNCVtkCustomModule);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
 public:
     MPNCVtkWriter(const Problem &problem)
diff --git a/dumux/porousmediumflow/mpnc/implicit/vtkwritercommon.hh b/dumux/porousmediumflow/mpnc/implicit/vtkwritercommon.hh
index 81753f063b9adf0f76a769ab5ae3698886503cd8..016ebf6d971183731718b1887c50b83bf3a6a383 100644
--- a/dumux/porousmediumflow/mpnc/implicit/vtkwritercommon.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/vtkwritercommon.hh
@@ -38,20 +38,20 @@ namespace Dumux
 template<class TypeTag>
 class MPNCVtkWriterCommon : public MPNCVtkWriterModule<TypeTag>
 {
-    typedef MPNCVtkWriterModule<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename ParentType::ScalarVector ScalarVector;
-    typedef typename ParentType::PhaseVector PhaseVector;
-    typedef typename ParentType::ComponentVector ComponentVector;
-    typedef typename ParentType::PhaseComponentMatrix PhaseComponentMatrix;
+    using ParentType = MPNCVtkWriterModule<TypeTag>;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ScalarVector = typename ParentType::ScalarVector;
+    using PhaseVector = typename ParentType::PhaseVector;
+    using ComponentVector = typename ParentType::ComponentVector;
+    using PhaseComponentMatrix = typename ParentType::PhaseComponentMatrix;
 
     enum { dim = GridView::dimension };
     enum { dimWorld = GridView::dimensionworld };
@@ -59,9 +59,9 @@ class MPNCVtkWriterCommon : public MPNCVtkWriterModule<TypeTag>
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { numEq = GET_PROP_VALUE(TypeTag, NumEq) };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> DimWorldVector;
-    typedef Dune::BlockVector<DimWorldVector> DimWorldField;
-    typedef std::array<DimWorldField, numPhases> PhaseDimWorldField;
+    using DimWorldVector = Dune::FieldVector<Scalar, dimWorld>;
+    using DimWorldField = Dune::BlockVector<DimWorldVector>;
+    using PhaseDimWorldField = std::array<DimWorldField, numPhases>;
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
     enum { dofCodim = isBox ? dim : 0 };
 
diff --git a/dumux/porousmediumflow/mpnc/implicit/vtkwritermodule.hh b/dumux/porousmediumflow/mpnc/implicit/vtkwritermodule.hh
index 7fb260fd8b1014dc00f32449a0cd0be0f03ce35e..89e5acd13bfbeaa2f5bd7b592eaa1a27d253380a 100644
--- a/dumux/porousmediumflow/mpnc/implicit/vtkwritermodule.hh
+++ b/dumux/porousmediumflow/mpnc/implicit/vtkwritermodule.hh
@@ -48,24 +48,24 @@ namespace Dumux
 template<class TypeTag>
 class MPNCVtkWriterModule
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using Element = typename GridView::template Codim<0>::Entity;
 
     enum { numPhases = GET_PROP_VALUE(TypeTag, NumPhases) };
     enum { numComponents = GET_PROP_VALUE(TypeTag, NumComponents) };
     enum { dim             = GridView::dimension };
 
 public:
-    typedef std::vector<Dune::FieldVector<Scalar, 1> > ScalarVector;
-    typedef std::array<ScalarVector, numPhases> PhaseVector;
-    typedef std::array<ScalarVector, numComponents> ComponentVector;
-    typedef std::array<ComponentVector,  numPhases> PhaseComponentMatrix;
+    using ScalarVector = std::vector<Dune::FieldVector<Scalar, 1>>;
+    using PhaseVector = std::array<ScalarVector, numPhases>;
+    using ComponentVector = std::array<ScalarVector, numComponents>;
+    using PhaseComponentMatrix = std::array<ComponentVector, numPhases>;
 
     MPNCVtkWriterModule(const Problem &problem)
         : problem_(problem)
diff --git a/dumux/porousmediumflow/richards/localresidual.hh b/dumux/porousmediumflow/richards/localresidual.hh
index 54c82724c8b757493c34bfbe361919b32e30c932..7a2a40bd4f4b59ced08c1af1c94eaeba8b8e8482 100644
--- a/dumux/porousmediumflow/richards/localresidual.hh
+++ b/dumux/porousmediumflow/richards/localresidual.hh
@@ -36,7 +36,7 @@ namespace Dumux
 template<class TypeTag>
 class RichardsLocalResidual : public GET_PROP_TYPE(TypeTag, BaseLocalResidual)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, LocalResidual) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, LocalResidual);
 
     using ParentType = typename GET_PROP_TYPE(TypeTag, BaseLocalResidual);
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume.hh
index f3922c75c5a866a3fffba3386a19eee8fc389d11..2deef9a06fd7f1a6230605c03654650394dda42d 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume.hh
@@ -40,28 +40,28 @@ template<class TypeTag>
 class FVMPFALInteractionVolume
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
     enum
         {
             dim = GridView::dimension
         };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename Grid::template Codim<0>::EntitySeed ElementSeed;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementSeed = typename Grid::template Codim<0>::EntitySeed;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, dim> FieldVectorVector;
-    typedef Dune::FieldVector<int, dim> IndexVector;
-    typedef std::vector<BoundaryTypes> BCTypeVector;
-    typedef std::vector<PrimaryVariables> BCVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using FieldVectorVector = Dune::FieldVector<DimVector, dim>;
+    using IndexVector = Dune::FieldVector<int, dim>;
+    using BCTypeVector = std::vector<BoundaryTypes>;
+    using BCVector = std::vector<PrimaryVariables>;
 
 public:
     enum FaceTypes
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3d.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3d.hh
index d27bb39e365a526285455a1a5f41a159e10c8b6d..1dbc370ca83285baf4ac0e756daa576cdebf9d37 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3d.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3d.hh
@@ -114,11 +114,11 @@ template<class TypeTag>
 class FvMpfaL3dInteractionVolume
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum
     {
@@ -126,20 +126,20 @@ private:
         dimWorld = GridView::dimensionworld,
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename Grid::template Codim<0>::EntitySeed ElementSeed;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementSeed = typename Grid::template Codim<0>::EntitySeed;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, dim> FieldVectorVector;
-    typedef Dune::FieldVector<DimVector, 2> FieldVectorVector2;
-    typedef Dune::FieldVector<FieldVectorVector2, dim> FieldVectorVectorVector;
-    typedef Dune::FieldVector<int, dim> IndexVector;
-    typedef std::vector<BoundaryTypes> BCTypeVector;
-    typedef std::vector<PrimaryVariables> BCVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using FieldVectorVector = Dune::FieldVector<DimVector, dim>;
+    using FieldVectorVector2 = Dune::FieldVector<DimVector, 2>;
+    using FieldVectorVectorVector = Dune::FieldVector<FieldVectorVector2, dim>;
+    using IndexVector = Dune::FieldVector<int, dim>;
+    using BCTypeVector = std::vector<BoundaryTypes>;
+    using BCVector = std::vector<PrimaryVariables>;
 
 public:
     //An interaction volume around a vertex includes in general 12 flux faces (see doc/docextra/3dmpfa).
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3dadaptive.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3dadaptive.hh
index c4e91581ac91493dd91c87e039db381eb804814c..a42f3d477190c3251bd5c7124c31822319d7e9d9 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3dadaptive.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/linteractionvolume3dadaptive.hh
@@ -191,12 +191,12 @@ template<class TypeTag>
 class FvMpfaL3dInteractionVolumeAdaptive:public FvMpfaL3dInteractionVolume<TypeTag>
 {
 private:
-    typedef FvMpfaL3dInteractionVolume<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using ParentType = FvMpfaL3dInteractionVolume<TypeTag>;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
     enum
     {
@@ -204,20 +204,20 @@ private:
         dimWorld = GridView::dimensionworld,
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename Grid::template Codim<0>::EntitySeed ElementSeed;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementSeed = typename Grid::template Codim<0>::EntitySeed;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldVector<DimVector, dim> FieldVectorVector;
-    typedef Dune::FieldVector<DimVector, 2> FieldVectorVector2;
-    typedef Dune::FieldVector<FieldVectorVector2, dim> FieldVectorVectorVector;
-    typedef Dune::FieldVector<int, dim> IndexVector;
-    typedef std::vector<BoundaryTypes> BCTypeVector;
-    typedef std::vector<PrimaryVariables> BCVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using FieldVectorVector = Dune::FieldVector<DimVector, dim>;
+    using FieldVectorVector2 = Dune::FieldVector<DimVector, 2>;
+    using FieldVectorVectorVector = Dune::FieldVector<FieldVectorVector2, dim>;
+    using IndexVector = Dune::FieldVector<int, dim>;
+    using BCTypeVector = std::vector<BoundaryTypes>;
+    using BCVector = std::vector<PrimaryVariables>;
 
 public:
 
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/ointeractionvolume.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/ointeractionvolume.hh
index 7e12487d7a5e399487d2d3a115cd422de861f176..401a1bb2e1b8114b55f67ab6aa693dc67efc4dcc 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/ointeractionvolume.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/ointeractionvolume.hh
@@ -37,29 +37,29 @@ template<class TypeTag>
 class FVMPFAOInteractionVolume
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
     enum
     {
         dim = GridView::dimension
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename Grid::template Codim<0>::EntitySeed ElementSeed;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using ElementSeed = typename Grid::template Codim<0>::EntitySeed;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef Dune::FieldVector<Scalar, dim> DimVector;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> DimMatrix;
-    typedef Dune::FieldVector<DimVector, dim> FieldVectorVector;
-    typedef Dune::FieldVector<int, dim> IndexVector;
-    typedef std::vector<BoundaryTypes> BCTypeVector;
-    typedef std::vector<PrimaryVariables> BCVector;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using DimMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
+    using FieldVectorVector = Dune::FieldVector<DimVector, dim>;
+    using IndexVector = Dune::FieldVector<int, dim>;
+    using BCTypeVector = std::vector<BoundaryTypes>;
+    using BCVector = std::vector<PrimaryVariables>;
 
 public:
     enum FaceTypes
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/properties.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/properties.hh
index 63d6abe9d901e6b22ad328be6371d0f2cd997595..bfc93d0e3b646729f34ff53a59908f9be60a51c6 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/properties.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/properties.hh
@@ -114,7 +114,7 @@ namespace Properties
 SET_PROP(MPFAProperties, GridImplementation)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
 public:
     static const int value = GridImp<Grid, Grid::dimension>::imp;
 };
diff --git a/dumux/porousmediumflow/sequential/cellcentered/mpfa/velocityintransport.hh b/dumux/porousmediumflow/sequential/cellcentered/mpfa/velocityintransport.hh
index 8a6147cfd2773bcc56750da14077a91420d57401..b077831b6687bfedbbc5526917d5c6ee697c1e22 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/mpfa/velocityintransport.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/mpfa/velocityintransport.hh
@@ -40,11 +40,11 @@ namespace Dumux
 template<class TypeTag>
 class FvMpfaVelocityInTransport
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GridView::Intersection Intersection;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using Intersection = typename GridView::Intersection;
 
 
 public:
diff --git a/dumux/porousmediumflow/sequential/cellcentered/pressure.hh b/dumux/porousmediumflow/sequential/cellcentered/pressure.hh
index 58d7d93c0f654309b0d2eddb7d0823214a778b47..c73c1f96d502e3605eaec07ff65b24b4218d1f0a 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/pressure.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/pressure.hh
@@ -46,26 +46,26 @@ namespace Dumux
 template<class TypeTag> class FVPressure
 {
     //the model implementation
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, PressureModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    // typedefs to abbreviate several dune classes...
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    // using declarations to abbreviate several dune classes...
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
     // the typenames used for the stiffness matrix and solution vector
-    typedef typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix) Matrix;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureRHSVector) RHSVector;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureSolutionVector) PressureSolution;
+    using Matrix = typename GET_PROP_TYPE(TypeTag, PressureCoefficientMatrix);
+    using RHSVector = typename GET_PROP_TYPE(TypeTag, PressureRHSVector);
+    using PressureSolution = typename GET_PROP_TYPE(TypeTag, PressureSolutionVector);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 protected:
 
@@ -73,7 +73,7 @@ protected:
      *
      * Contains the return values of the get*()-functions (matrix or right-hand side entry).
      */
-    typedef Dune::FieldVector<Scalar, 2> EntryType;
+    using EntryType = Dune::FieldVector<Scalar, 2>;
 
     //! Indices of matrix and rhs entries
     /**
@@ -514,7 +514,7 @@ getSolver(const Problem& problem)
 template<class TypeTag>
 void FVPressure<TypeTag>::solve()
 {
-    typedef typename GET_PROP_TYPE(TypeTag, LinearSolver) Solver;
+    using Solver = typename GET_PROP_TYPE(TypeTag, LinearSolver);
 
     int verboseLevelSolver = getParam<int>("LinearSolver.Verbosity");
 
diff --git a/dumux/porousmediumflow/sequential/cellcentered/transport.hh b/dumux/porousmediumflow/sequential/cellcentered/transport.hh
index 6067e228e5742cf5ffa687f29bdbbe3c415cb01f..5fcef83f8bf003d3e3812d67aaa08e54a35662a4 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/transport.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/transport.hh
@@ -57,27 +57,27 @@ SET_INT_PROP(SequentialModel, TimeManagerSubTimestepVerbosity, 0);
 template<class TypeTag>
 class FVTransport
 {
-    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) Implementation;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, TransportModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
     enum
         {
             dim = GridView::dimension, dimWorld = GridView::dimensionworld
         };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
-    typedef typename GET_PROP_TYPE(TypeTag, EvalCflFluxFunction) EvalCflFluxFunction;
+    using EvalCflFluxFunction = typename GET_PROP_TYPE(TypeTag, EvalCflFluxFunction);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     struct LocalTimesteppingData
     {
@@ -421,9 +421,9 @@ void FVTransport<TypeTag>::update(const Scalar t, Scalar& dt, TransportSolutionT
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > > DataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using DataHandle = VectorExchange<ElementMapper, Dune::BlockVector<Dune::FieldVector<Scalar, 1> > >;
     DataHandle dataHandle(problem_.elementMapper(), updateVec);
     problem_.gridView().template communicate<DataHandle>(dataHandle,
                                                          Dune::InteriorBorder_All_Interface,
@@ -431,7 +431,7 @@ void FVTransport<TypeTag>::update(const Scalar t, Scalar& dt, TransportSolutionT
 
     if (localTimeStepping_)
     {
-    typedef VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> > TimeDataHandle;
+    using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >;
 
     TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_);
     problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle,
@@ -464,7 +464,7 @@ void FVTransport<TypeTag>::updatedTargetDt_(Scalar &dt)
         LocalTimesteppingData& localDataI = timeStepData_[globalIdxI];
 
 
-        typedef std::unordered_map<int, Scalar > FaceDt;
+        using FaceDt = std::unordered_map<int, Scalar>;
         FaceDt faceDt;
 
         // run through all intersections with neighbors and boundary
@@ -554,9 +554,9 @@ void FVTransport<TypeTag>::updatedTargetDt_(Scalar &dt)
 
 #if HAVE_MPI
     // communicate updated values
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> > TimeDataHandle;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using TimeDataHandle = VectorExchange<ElementMapper, std::vector<LocalTimesteppingData> >;
 
     TimeDataHandle timeDataHandle(problem_.elementMapper(), timeStepData_);
     problem_.gridView().template communicate<TimeDataHandle>(timeDataHandle,
diff --git a/dumux/porousmediumflow/sequential/cellcentered/velocity.hh b/dumux/porousmediumflow/sequential/cellcentered/velocity.hh
index 9d75b386f1b1f5f77d7cd86098467c73c87f8076..3daa136183daeb196aff46d1eee12dce7d00e441 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/velocity.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/velocity.hh
@@ -46,10 +46,10 @@ namespace Dumux
  */
 template<class TypeTag, class Velocity> class FVVelocity
 {
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 public:
 
     //!Initialize velocity implementation
diff --git a/dumux/porousmediumflow/sequential/cellcentered/velocitydefault.hh b/dumux/porousmediumflow/sequential/cellcentered/velocitydefault.hh
index ce4908ea13dfc2a954e82d2d5566c99ac25941f5..2f7a503218663f2e7d5f1a83bb6153ba7fffe671 100644
--- a/dumux/porousmediumflow/sequential/cellcentered/velocitydefault.hh
+++ b/dumux/porousmediumflow/sequential/cellcentered/velocitydefault.hh
@@ -40,11 +40,11 @@ namespace Dumux
 template<class TypeTag>
 class FVVelocityDefault
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GridView::Intersection Intersection;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using Intersection = typename GridView::Intersection;
 
 
 public:
diff --git a/dumux/porousmediumflow/sequential/gridadapt.hh b/dumux/porousmediumflow/sequential/gridadapt.hh
index f22c012334c7461f50e4e322bf625c63c37a6691..93fb8a887b40699b1e61c3e97d04de3d8e8e207d 100644
--- a/dumux/porousmediumflow/sequential/gridadapt.hh
+++ b/dumux/porousmediumflow/sequential/gridadapt.hh
@@ -43,20 +43,20 @@ namespace Dumux
 template<class TypeTag, bool adaptive>
 class GridAdapt
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)   Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem)  Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GridView::Grid Grid;
-    typedef typename Grid::LeafGridView LeafGridView;
-    typedef typename Grid::template Codim<0>::Entity Element;
+    using Grid = typename GridView::Grid;
+    using LeafGridView = typename Grid::LeafGridView;
+    using Element = typename Grid::template Codim<0>::Entity;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename GET_PROP_TYPE(TypeTag, AdaptionIndicator) AdaptionIndicator;
-    typedef typename GET_PROP_TYPE(TypeTag, AdaptionInitializationIndicator) AdaptionInitializationIndicator;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using AdaptionIndicator = typename GET_PROP_TYPE(TypeTag, AdaptionIndicator);
+    using AdaptionInitializationIndicator = typename GET_PROP_TYPE(TypeTag, AdaptionInitializationIndicator);
 
-    typedef typename Grid::Traits::LocalIdSet IdSet;
-    typedef typename IdSet::IdType IdType;
+    using IdSet = typename Grid::Traits::LocalIdSet;
+    using IdType = typename IdSet::IdType;
 
 public:
     /*!
@@ -209,7 +209,7 @@ public:
     template<class Indicator>
     void markElements(Indicator& indicator)
     {
-        typedef std::unordered_map<IdType, IdType> CoarsenMarkerType;
+        using CoarsenMarkerType = std::unordered_map<IdType, IdType>;
         CoarsenMarkerType coarsenMarker;
         const IdSet& idSet(problem_.grid().localIdSet());
 
@@ -456,10 +456,10 @@ private:
 template<class TypeTag>
 class GridAdapt<TypeTag, false>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)   Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem)     Problem;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolutionType;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ScalarSolutionType = typename SolutionTypes::ScalarSolution;
 
 public:
     void init()
diff --git a/dumux/porousmediumflow/sequential/gridadaptinitializationindicator.hh b/dumux/porousmediumflow/sequential/gridadaptinitializationindicator.hh
index c96501cc9338ac67671ecbeea8ae90053a7ea5bb..96e58a045d61019ce6a6ff4bed87bf51d8621503 100644
--- a/dumux/porousmediumflow/sequential/gridadaptinitializationindicator.hh
+++ b/dumux/porousmediumflow/sequential/gridadaptinitializationindicator.hh
@@ -40,16 +40,16 @@ template<class TypeTag>
 class GridAdaptInitializationIndicator
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AdaptionIndicator) AdaptionIndicator;
+    using AdaptionIndicator = typename GET_PROP_TYPE(TypeTag, AdaptionIndicator);
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     enum
         {
@@ -65,9 +65,9 @@ private:
             coarsenCell = -1
         };
 
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef Dune::FieldVector<Scalar, dim-1> LocalPositionFace;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using LocalPositionFace = Dune::FieldVector<Scalar, dim-1>;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     void virtualHierarchicSourceSearch_(PrimaryVariables &source, const Element& element)
     {
diff --git a/dumux/porousmediumflow/sequential/gridadaptinitializationindicatordefault.hh b/dumux/porousmediumflow/sequential/gridadaptinitializationindicatordefault.hh
index 342297afcc59864092cbee814c8b5c353ed50b5a..fade8b8ce39319cfc298c25ea27bfd13a88e7ebd 100644
--- a/dumux/porousmediumflow/sequential/gridadaptinitializationindicatordefault.hh
+++ b/dumux/porousmediumflow/sequential/gridadaptinitializationindicatordefault.hh
@@ -41,10 +41,10 @@ template<class TypeTag>
 class GridAdaptInitializationIndicatorDefault
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, AdaptionIndicator) AdaptionIndicator;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using AdaptionIndicator = typename GET_PROP_TYPE(TypeTag, AdaptionIndicator);
 
 public:
     /*! \brief Calculates the indicator used for refinement/coarsening for each grid cell.
diff --git a/dumux/porousmediumflow/sequential/impet.hh b/dumux/porousmediumflow/sequential/impet.hh
index c79b86b463e601a6f9c012ec59eb6c4e59321277..c9f179888e726b9d79b369fb9cdbf00551392b09 100644
--- a/dumux/porousmediumflow/sequential/impet.hh
+++ b/dumux/porousmediumflow/sequential/impet.hh
@@ -47,12 +47,12 @@ namespace Dumux
  */
 template<class TypeTag> class IMPET
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using ElementMapper = typename SolutionTypes::ElementMapper;
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
 
     enum IterationType
         {
@@ -62,7 +62,7 @@ template<class TypeTag> class IMPET
         };
 
 public:
-    typedef typename SolutionTypes::ScalarSolution SolutionType;
+    using SolutionType = typename SolutionTypes::ScalarSolution;
 
     //! Set initial solution and initialize parameters
     void initialize()
diff --git a/dumux/porousmediumflow/sequential/impetproblem.hh b/dumux/porousmediumflow/sequential/impetproblem.hh
index 51d7deca5faf1fc4c4903f17a6a976e6ea08e240..37f39224bd79380ba0583ad0f04a2344853e0490 100644
--- a/dumux/porousmediumflow/sequential/impetproblem.hh
+++ b/dumux/porousmediumflow/sequential/impetproblem.hh
@@ -45,26 +45,26 @@ template<class TypeTag>
 class IMPETProblem
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-    typedef Dumux::VtkMultiWriter<GridView>  VtkMultiWriter;
+    using VtkMultiWriter = Dumux::VtkMultiWriter<GridView>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Variables) Variables;
+    using Variables = typename GET_PROP_TYPE(TypeTag, Variables);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::VertexMapper VertexMapper;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using VertexMapper = typename SolutionTypes::VertexMapper;
+    using ElementMapper = typename SolutionTypes::ElementMapper;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Model) IMPETModel;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportSolutionType) TransportSolutionType;
-    typedef typename GET_PROP_TYPE(TypeTag, PressureModel) PressureModel;
-    typedef typename GET_PROP_TYPE(TypeTag, TransportModel) TransportModel;
+    using IMPETModel = typename GET_PROP_TYPE(TypeTag, Model);
+    using TransportSolutionType = typename GET_PROP_TYPE(TypeTag, TransportSolutionType);
+    using PressureModel = typename GET_PROP_TYPE(TypeTag, PressureModel);
+    using TransportModel = typename GET_PROP_TYPE(TypeTag, TransportModel);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     enum
         {
@@ -77,14 +77,14 @@ private:
             adaptiveGrid = GET_PROP_VALUE(TypeTag, AdaptiveGrid)
         };
 
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
     // The module to adapt grid. If adaptiveGrid is false, this model does nothing.
-    typedef typename GET_PROP_TYPE(TypeTag, GridAdaptModel) GridAdaptModel;
+    using GridAdaptModel = typename GET_PROP_TYPE(TypeTag, GridAdaptModel);
 
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     //private!! copy constructor
     IMPETProblem(const IMPETProblem&)
@@ -721,7 +721,7 @@ public:
      */
     void serialize()
     {
-        typedef Restart Restarter;
+        using Restarter = Restart;
 
         Restarter res;
         res.serializeBegin(asImp_());
@@ -758,7 +758,7 @@ public:
             model().initialize();
         }
 
-        typedef Restart Restarter;
+        using Restarter = Restart;
 
         Restarter res;
         res.deserializeBegin(asImp_(), tRestart);
diff --git a/dumux/porousmediumflow/sequential/onemodelproblem.hh b/dumux/porousmediumflow/sequential/onemodelproblem.hh
index 92bee5bc4d5c369add1024b9b37d4be5ea32f027..ab1c4fcec4c888ea077e33514f9b57483958eda1 100644
--- a/dumux/porousmediumflow/sequential/onemodelproblem.hh
+++ b/dumux/porousmediumflow/sequential/onemodelproblem.hh
@@ -43,22 +43,22 @@ template<class TypeTag>
 class OneModelProblem
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Implementation;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using Implementation = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-    typedef Dumux::VtkMultiWriter<GridView>  VtkMultiWriter;
+    using VtkMultiWriter = Dumux::VtkMultiWriter<GridView>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Variables) Variables;
+    using Variables = typename GET_PROP_TYPE(TypeTag, Variables);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Model) Model;
+    using Model = typename GET_PROP_TYPE(TypeTag, Model);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::VertexMapper VertexMapper;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using VertexMapper = typename SolutionTypes::VertexMapper;
+    using ElementMapper = typename SolutionTypes::ElementMapper;
 
     enum
     {
@@ -70,12 +70,12 @@ private:
         wetting = 0, nonwetting = 1
     };
 
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     // private!! copy constructor
     OneModelProblem(const OneModelProblem&)
@@ -596,7 +596,7 @@ public:
      */
     void serialize()
     {
-        typedef Restart Restarter;
+        using Restarter = Restart;
 
         Restarter res;
         res.serializeBegin(asImp_());
@@ -617,7 +617,7 @@ public:
      */
     void restart(double tRestart)
     {
-        typedef Restart Restarter;
+        using Restarter = Restart;
 
         Restarter res;
         res.deserializeBegin(asImp_(), tRestart);
diff --git a/dumux/porousmediumflow/sequential/pressureproperties.hh b/dumux/porousmediumflow/sequential/pressureproperties.hh
index c8711ee2aec113caa58b68374ea146fe1193beb5..699bf0653147e46ada366a0658eb3f40bb0f4f5e 100644
--- a/dumux/porousmediumflow/sequential/pressureproperties.hh
+++ b/dumux/porousmediumflow/sequential/pressureproperties.hh
@@ -78,19 +78,19 @@ SET_BOOL_PROP(Pressure, VisitFacesOnlyOnce, false);
 SET_PROP(Pressure, PressureCoefficientMatrix)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef Dune::FieldMatrix<Scalar, 1, 1> MB;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using MB = Dune::FieldMatrix<Scalar, 1, 1>;
 
 public:
-    typedef Dune::BCRSMatrix<MB> type;
+    using type = Dune::BCRSMatrix<MB>;
 };
 SET_PROP(Pressure, PressureRHSVector)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
 public:
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > type;
+    using type = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
 };
 
 SET_TYPE_PROP(Pressure, PressureSolutionVector, typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution);
diff --git a/dumux/porousmediumflow/sequential/properties.hh b/dumux/porousmediumflow/sequential/properties.hh
index 8a64766d7a5ccec121d17210130d06b3265bed38..7b8a393d3e41f632b19ef094c46909dd5c41a0a2 100644
--- a/dumux/porousmediumflow/sequential/properties.hh
+++ b/dumux/porousmediumflow/sequential/properties.hh
@@ -115,17 +115,17 @@ SET_INT_PROP(SequentialModel, LinearSolverPreconditionerBlockLevel, 1);
 SET_PROP(SequentialModel, GridView)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
 
 public:
-    typedef typename Grid::LeafGridView type;
+    using type = typename Grid::LeafGridView;
 };
 
 //! Default number of intersections for quadrilaterals
 SET_PROP(SequentialModel, MaxIntersections)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
     enum
     {
         dim = GridView::dimension
@@ -141,10 +141,10 @@ public:
  */
 SET_PROP(SequentialModel, SolutionTypes)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Variables) Variables;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
+    using Variables = typename GET_PROP_TYPE(TypeTag, Variables);
 
     enum
     {
@@ -162,7 +162,7 @@ public:
 #if DUNE_VERSION_NEWER(DUNE_COMMON,2,6)
     using VertexMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>;
 #else
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout> VertexMapper;
+    using VertexMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGVertexLayout>;
 #endif
 
     /*!
@@ -171,7 +171,7 @@ public:
 #if DUNE_VERSION_NEWER(DUNE_COMMON,2,6)
     using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView>;
 #else
-    typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout> ElementMapper;
+    using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout>;
 #endif
 
     /*!
@@ -179,19 +179,19 @@ public:
      *
      * This defines the primary and secondary variable vectors at each degree of freedom.
      */
-    typedef Dune::FieldVector<Scalar, numEq> PrimaryVariables;
+    using PrimaryVariables = Dune::FieldVector<Scalar, numEq>;
     //! type for vector of scalars
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > ScalarSolution;
+    using ScalarSolution = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
     //! type for vector of phase properties
-    typedef Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numComponents> ComponentProperty;
+    using ComponentProperty = Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numComponents>;
     //! type for vector of phase properties
-    typedef Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numPhases> PhaseProperty;
+    using PhaseProperty = Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numPhases>;
     //! type for vector of fluid properties: Vector[element][phase]
-    typedef Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numPhases> FluidProperty;
+    using FluidProperty = Dune::FieldVector<Dune::BlockVector<Dune::FieldVector<Scalar,1> >, numPhases>;
     //! type for vector of vectors (of size 2 x dimension) of scalars
-    typedef Dune::BlockVector<Dune::FieldVector<Dune::FieldVector<Scalar, numPhases>, maxIntersections > > PhasePropertyElemFace;
+    using PhasePropertyElemFace = Dune::BlockVector<Dune::FieldVector<Dune::FieldVector<Scalar, numPhases>, maxIntersections> >;
     //! type for vector of vectors (of size 2 x dimension) of vector (of size dimension) of scalars
-    typedef Dune::BlockVector<Dune::FieldVector<Dune::FieldVector<Scalar, dim>, maxIntersections > > DimVecElemFace;
+    using DimVecElemFace = Dune::BlockVector<Dune::FieldVector<Dune::FieldVector<Scalar, dim>, maxIntersections> >;
 };
 
 SET_TYPE_PROP(SequentialModel,  Variables, VariableClass<TypeTag>);
@@ -208,7 +208,7 @@ SET_PROP(SequentialModel, BoundaryTypes)
 { private:
     enum { numEq = GET_PROP_VALUE(TypeTag, NumEq) };
 public:
-    typedef BoundaryTypes<numEq>  type;
+    using type = BoundaryTypes<numEq>;
 };
 
 //! do not specific any model-specific default parameters here
diff --git a/dumux/porousmediumflow/sequential/transportproperties.hh b/dumux/porousmediumflow/sequential/transportproperties.hh
index 9b390153dea04acfb217936e11ab0c6ab1865639..dec294c16e1041288d6e4213155de3107af0f765 100644
--- a/dumux/porousmediumflow/sequential/transportproperties.hh
+++ b/dumux/porousmediumflow/sequential/transportproperties.hh
@@ -69,10 +69,10 @@ SET_BOOL_PROP(Transport, ImpetSwitchNormals, false);
 SET_PROP(Transport, TransportSolutionType)
 {
  private:
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionType;
+    using SolutionType = typename GET_PROP(TypeTag, SolutionTypes);
 
  public:
-    typedef typename SolutionType::ScalarSolution type;//!<type for vector of scalar properties
+    using type = typename SolutionType::ScalarSolution;//!<type for vector of scalar properties
 };
 SET_SCALAR_PROP(Transport, ImpetDtVariationRestrictionFactor, std::numeric_limits<double>::max());
 SET_SCALAR_PROP(Transport, ImpetPorosityThreshold, 1e-6);
diff --git a/dumux/porousmediumflow/sequential/variableclass.hh b/dumux/porousmediumflow/sequential/variableclass.hh
index 289b1659fd1acb7b6d0d40c80747cdcbb1d9828b..ffe6d65cceef3e897e8eee89e8ffbe19dfa0cd73 100644
--- a/dumux/porousmediumflow/sequential/variableclass.hh
+++ b/dumux/porousmediumflow/sequential/variableclass.hh
@@ -49,23 +49,23 @@ template<class TypeTag>
 class VariableClass
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
     {
         dim = GridView::dimension,
     };
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Traits::template Codim<dim>::Entity Vertex;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Vertex = typename GridView::Traits::template Codim<dim>::Entity;
 
-    typedef typename SolutionTypes::VertexMapper VertexMapper;
-    typedef typename SolutionTypes::ElementMapper ElementMapper;
+    using VertexMapper = typename SolutionTypes::VertexMapper;
+    using ElementMapper = typename SolutionTypes::ElementMapper;
 
 public:
-    typedef typename std::vector <CellData> CellDataVector;
+    using CellDataVector = typename std::vector<CellData>;
 
 private:
     const GridView gridView_;
diff --git a/dumux/porousmediumflow/sequential/variableclassadaptive.hh b/dumux/porousmediumflow/sequential/variableclassadaptive.hh
index 77719ca79e1d9b9b16972c204424d7a1d1cef5f0..bb0d26f0cfe3e4b31dc5973e4e225e6e04123275 100644
--- a/dumux/porousmediumflow/sequential/variableclassadaptive.hh
+++ b/dumux/porousmediumflow/sequential/variableclassadaptive.hh
@@ -45,16 +45,16 @@ template<class TypeTag>
 class VariableClassAdaptive: public VariableClass<TypeTag>
 {
 private:
-    typedef VariableClass<TypeTag> ParentType;
+    using ParentType = VariableClass<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
-    typedef typename CellData::AdaptedValues AdaptedValues;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
+    using AdaptedValues = typename CellData::AdaptedValues;
 
-    typedef typename GridView::Grid Grid;
-    typedef typename Grid::LevelGridView LevelGridView;
-    typedef Dune::PersistentContainer<Grid, AdaptedValues> PersistentContainer;
+    using Grid = typename GridView::Grid;
+    using LevelGridView = typename Grid::LevelGridView;
+    using PersistentContainer = Dune::PersistentContainer<Grid, AdaptedValues>;
 
 private:
     const Grid& grid_;
@@ -197,9 +197,9 @@ public:
 
 #if HAVE_MPI
         // communicate ghost data
-        typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-        typedef typename SolutionTypes::ElementMapper ElementMapper;
-        typedef VectorExchange<ElementMapper, std::vector<CellData> > DataHandle;
+        using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+        using ElementMapper = typename SolutionTypes::ElementMapper;
+        using DataHandle = VectorExchange<ElementMapper, std::vector<CellData> >;
         DataHandle dataHandle(problem.elementMapper(), this->cellDataGlobal());
         problem.gridView().template communicate<DataHandle>(dataHandle,
                                                             Dune::InteriorBorder_All_Interface,
diff --git a/test/common/spline/test_spline.cc b/test/common/spline/test_spline.cc
index 775e5cb7b81d39d79f74cba31d4f32f834458d8c..3b25a040b68227461269fe9d2ce5e4419a256f90 100644
--- a/test/common/spline/test_spline.cc
+++ b/test/common/spline/test_spline.cc
@@ -213,7 +213,7 @@ void plot()
 {
     const int numSamples = 5;
     const int n = numSamples - 1;
-    typedef Dune::FieldVector<double, numSamples> FV;
+    using FV = Dune::FieldVector<double, numSamples>;
 
     double x_[] = { 0, 5, 7.5, 8.75, 9.375 };
     double y_[] = { 10, 0, 10, 0, 10 };
diff --git a/test/io/gridcreator/test_gridcreator_cake.cc b/test/io/gridcreator/test_gridcreator_cake.cc
index 40289ca5b22e3c08dadea575d7122a37bd4a8952..41ef55e5e6c6eca4fcca815639b554a24ba2e4bf 100644
--- a/test/io/gridcreator/test_gridcreator_cake.cc
+++ b/test/io/gridcreator/test_gridcreator_cake.cc
@@ -56,7 +56,7 @@ int main(int argc, char** argv) try
     // initialize MPI, finalize is done automatically on exit
     Dune::MPIHelper::instance(argc, argv);
 
-    // Some typedefs
+    // using declarations
     using TypeTag = TTAG(GridCreatorCakeTest);
     using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
     using GridCreator = typename Dumux::CakeGridCreator<Grid>;
diff --git a/test/io/gridcreator/test_gridcreator_gmsh.cc b/test/io/gridcreator/test_gridcreator_gmsh.cc
index 64405dc09fc687567b3b2ec93f26751101134e65..eef7ece4f34c2f9a619fea16bdb01906cdc49659 100644
--- a/test/io/gridcreator/test_gridcreator_gmsh.cc
+++ b/test/io/gridcreator/test_gridcreator_gmsh.cc
@@ -112,7 +112,7 @@ int main(int argc, char** argv) try
     // initialize MPI, finalize is done automatically on exit
     Dune::MPIHelper::instance(argc, argv);
 
-    // Some typedefs
+    // using declarations
     using TypeTag = TTAG(GridCreatorGmshTest);
     using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
     using GridCreator = typename Dumux::GridCreator<TypeTag>;
diff --git a/test/material/fluidsystems/checkfluidsystem.hh b/test/material/fluidsystems/checkfluidsystem.hh
index 2bce457de282868467c16000af1f5065dad9bd06..4869bd8edaac417c8604e9d9d37b76623de9f67b 100644
--- a/test/material/fluidsystems/checkfluidsystem.hh
+++ b/test/material/fluidsystems/checkfluidsystem.hh
@@ -425,7 +425,7 @@ int checkFluidSystem()
     fs.restrictToPhase(-1);
 
     // check whether the parameter cache adheres to the API
-    typedef typename FluidSystem::ParameterCache PC;
+    using PC = typename FluidSystem::ParameterCache;
     PC paramCache;
     try
     {
diff --git a/test/material/fluidsystems/test_fluidsystems.cc b/test/material/fluidsystems/test_fluidsystems.cc
index 5e5cfa3077b1e34e5d4a95101133b1d22358b54a..d7f2901eb03298b5ce46c828ac83615f5bae3052 100644
--- a/test/material/fluidsystems/test_fluidsystems.cc
+++ b/test/material/fluidsystems/test_fluidsystems.cc
@@ -58,12 +58,12 @@
 
 int main()
 {
-    typedef double Scalar;
-    typedef Dumux::H2O<Scalar> H2O;
-    typedef Dumux::N2<Scalar> N2;
+    using Scalar = double;
+    using H2O = Dumux::H2O<Scalar>;
+    using N2 = Dumux::N2<Scalar>;
 
-    typedef Dumux::FluidSystems::LiquidPhase<Scalar, H2O> Liquid;
-    typedef Dumux::FluidSystems::GasPhase<Scalar, N2> Gas;
+    using Liquid = Dumux::FluidSystems::LiquidPhase<Scalar, H2O>;
+    using Gas = Dumux::FluidSystems::GasPhase<Scalar, N2>;
 
     int success = 0;
     std::vector<std::string> collectedExceptions;
@@ -71,8 +71,8 @@ int main()
     /////////////////////////
     // check all fluid states
     {
-        typedef Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/false> FluidSystem;
-        typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> BaseFluidState;
+        using FluidSystem = Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/false>;
+        using BaseFluidState = Dumux::CompositionalFluidState<Scalar, FluidSystem>;
         BaseFluidState baseFs;
 
         // TwoPTwoCFluidState TODO: doesn't fulfill interface!
@@ -121,101 +121,101 @@ int main()
     // check all fluid systems
 
     // 1p
-    {   typedef Dumux::FluidSystems::OneP<Scalar, Liquid> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::OneP<Scalar, Liquid>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::OneP<Scalar, Gas> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::OneP<Scalar, Gas>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // 2p-immiscible
-    {   typedef Dumux::FluidSystems::TwoPImmiscible<Scalar, Liquid, Liquid> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::TwoPImmiscible<Scalar, Liquid, Liquid>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::TwoPImmiscible<Scalar, Liquid, Gas> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::TwoPImmiscible<Scalar, Liquid, Gas>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::TwoPImmiscible<Scalar, Gas, Liquid> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::TwoPImmiscible<Scalar, Gas, Liquid>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // base
 
     // Brine -- Air
-    {   typedef Dumux::SimpleH2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::SimpleH2O<Scalar>;
         const bool enableComplexRelations=false;
-        typedef Dumux::FluidSystems::BrineAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::BrineAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::SimpleH2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::SimpleH2O<Scalar>;
         const bool enableComplexRelations=true;
-        typedef Dumux::FluidSystems::BrineAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::BrineAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // Brine -- CO2
 
     // H2O -- Air
-    {   typedef Dumux::SimpleH2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::SimpleH2O<Scalar>;
         const bool enableComplexRelations=false;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::SimpleH2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::SimpleH2O<Scalar>;
         const bool enableComplexRelations=true;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::H2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::H2O<Scalar>;
         const bool enableComplexRelations=false;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::H2O<Scalar> H2OType;
+    {   using H2OType =  Dumux::H2O<Scalar>;
         const bool enableComplexRelations=true;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
     {   using H2OType = Dumux::TabulatedComponent<Scalar, Dumux::H2O<Scalar>>;
         const bool enableComplexRelations=false;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
     {   using H2OType = Dumux::TabulatedComponent<Scalar, Dumux::H2O<Scalar>>;
         const bool enableComplexRelations=true;
-        typedef Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations> FluidSystem;
+        using FluidSystem = Dumux::FluidSystems::H2OAir<Scalar, H2OType, enableComplexRelations>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // gas phase
-    {   typedef Dumux::FluidSystems::GasPhase<Scalar, H2O> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::GasPhase<Scalar, H2O>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // H2O -- Air -- Mesitylene
-    {   typedef Dumux::FluidSystems::H2OAirMesitylene<Scalar> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2OAirMesitylene<Scalar>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // H2O -- Air -- Xylene
-    {   typedef Dumux::FluidSystems::H2OAirXylene<Scalar> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2OAirXylene<Scalar>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // H2O -- N2
-    {   typedef Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/false> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/false>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/true> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2<Scalar, /*enableComplexRelations=*/true>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // H2O -- N2 -- kinetic
-    {   typedef Dumux::FluidSystems::H2ON2Kinetic<Scalar, /*enableComplexRelations=*/false> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2Kinetic<Scalar, /*enableComplexRelations=*/false>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::H2ON2Kinetic<Scalar, /*enableComplexRelations=*/true> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2Kinetic<Scalar, /*enableComplexRelations=*/true>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // H2O -- N2 -- o2
-    {   typedef Dumux::FluidSystems::H2ON2O2<Scalar, /*enableComplexRelations=*/false> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2O2<Scalar, /*enableComplexRelations=*/false>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::H2ON2O2<Scalar, /*enableComplexRelations=*/true> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::H2ON2O2<Scalar, /*enableComplexRelations=*/true>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // liquid phase
-    {   typedef Dumux::FluidSystems::LiquidPhase<Scalar, H2O> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::LiquidPhase<Scalar, H2O>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // pure water simple
-    {   typedef Dumux::FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*enableComplexRelations=*/false> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*enableComplexRelations=*/false>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
-    {   typedef Dumux::FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*enableComplexRelations=*/true> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*enableComplexRelations=*/true>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     // spe5
-    {   typedef Dumux::FluidSystems::Spe5<Scalar> FluidSystem;
+    {   using FluidSystem = Dumux::FluidSystems::Spe5<Scalar>;
         success += Dumux::checkFluidSystem<Scalar, FluidSystem>(); }
 
     return success;
diff --git a/test/material/immiscibleflash/test_immiscibleflash.cc b/test/material/immiscibleflash/test_immiscibleflash.cc
index 821ee18857db5fe12e391f172b2ff06f85a3fd63..a89a85e7d78c1196ec6201008dd60e97a8ea1c1e 100644
--- a/test/material/immiscibleflash/test_immiscibleflash.cc
+++ b/test/material/immiscibleflash/test_immiscibleflash.cc
@@ -88,7 +88,7 @@ void checkImmiscibleFlash(const FluidState &fsRef,
 {
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     // calculate the total amount of stuff in the reference fluid
     // phase
@@ -101,7 +101,7 @@ void checkImmiscibleFlash(const FluidState &fsRef,
     }
 
     // initialize the fluid state for the flash calculation
-    typedef Dumux::ImmiscibleFlash<Scalar, FluidSystem> ImmiscibleFlash;
+    using ImmiscibleFlash = Dumux::ImmiscibleFlash<Scalar, FluidSystem>;
     FluidState fsFlash;
 
     fsFlash.setTemperature(fsRef.temperature(/*phaseIdx=*/0));
@@ -123,7 +123,7 @@ void completeReferenceFluidState(FluidState &fs,
 {
     enum { numPhases = FluidSystem::numPhases };
 
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
 
     int otherPhaseIdx = 1 - refPhaseIdx;
 
@@ -149,19 +149,19 @@ void completeReferenceFluidState(FluidState &fs,
 
 int main()
 {
-    typedef double Scalar;
-    typedef Dumux::FluidSystems::H2ON2<Scalar> FluidSystem;
-    typedef Dumux::ImmiscibleFluidState<Scalar, FluidSystem> ImmiscibleFluidState;
+    using Scalar = double;
+    using FluidSystem = Dumux::FluidSystems::H2ON2<Scalar>;
+    using ImmiscibleFluidState = Dumux::ImmiscibleFluidState<Scalar, FluidSystem>;
 
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
     enum { wPhaseIdx = FluidSystem::wPhaseIdx };
     enum { nPhaseIdx = FluidSystem::nPhaseIdx };
 
-    typedef Dumux::RegularizedBrooksCorey<Scalar> EffMaterialLaw;
-    typedef Dumux::EffToAbsLaw<EffMaterialLaw> TwoPMaterialLaw;
-    typedef Dumux::TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> MaterialLaw;
-    typedef MaterialLaw::Params MaterialLawParams;
+    using EffMaterialLaw = Dumux::RegularizedBrooksCorey<Scalar>;
+    using TwoPMaterialLaw = Dumux::EffToAbsLaw<EffMaterialLaw>;
+    using MaterialLaw = Dumux::TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
+    using MaterialLawParams = MaterialLaw::Params;
 
     Scalar T = 273.15 + 25;
 
diff --git a/test/material/ncpflash/test_ncpflash.cc b/test/material/ncpflash/test_ncpflash.cc
index a4b718dae35df33aa481306d7645236f3e7821f1..20dbca2a2425206265296437e4d78739d65620a5 100644
--- a/test/material/ncpflash/test_ncpflash.cc
+++ b/test/material/ncpflash/test_ncpflash.cc
@@ -88,7 +88,7 @@ void checkNcpFlash(const FluidState &fsRef,
 {
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     // calculate the total amount of stuff in the reference fluid
     // phase
@@ -101,7 +101,7 @@ void checkNcpFlash(const FluidState &fsRef,
     }
 
     // initialize the fluid state for the flash calculation
-    typedef Dumux::NcpFlash<Scalar, FluidSystem> NcpFlash;
+    using NcpFlash = Dumux::NcpFlash<Scalar, FluidSystem>;
     FluidState fsFlash;
 
     fsFlash.setTemperature(fsRef.temperature(/*phaseIdx=*/0));
@@ -123,8 +123,8 @@ void completeReferenceFluidState(FluidState &fs,
 {
     enum { numPhases = FluidSystem::numPhases };
 
-    typedef Dumux::ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
+    using ComputeFromReferencePhase = Dumux::ComputeFromReferencePhase<Scalar, FluidSystem>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
 
     int otherPhaseIdx = 1 - refPhaseIdx;
 
@@ -151,9 +151,9 @@ void completeReferenceFluidState(FluidState &fs,
 
 int main()
 {
-    typedef double Scalar;
-    typedef Dumux::FluidSystems::H2ON2<Scalar, false> FluidSystem;
-    typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> CompositionalFluidState;
+    using Scalar = double;
+    using FluidSystem = Dumux::FluidSystems::H2ON2<Scalar, false>;
+    using CompositionalFluidState = Dumux::CompositionalFluidState<Scalar, FluidSystem>;
 
     enum { numPhases = FluidSystem::numPhases };
     enum { numComponents = FluidSystem::numComponents };
@@ -163,10 +163,10 @@ int main()
     enum { H2OIdx = FluidSystem::H2OIdx };
     enum { N2Idx = FluidSystem::N2Idx };
 
-    typedef Dumux::RegularizedBrooksCorey<Scalar> EffMaterialLaw;
-    typedef Dumux::EffToAbsLaw<EffMaterialLaw> TwoPMaterialLaw;
-    typedef Dumux::TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> MaterialLaw;
-    typedef MaterialLaw::Params MaterialLawParams;
+    using EffMaterialLaw = Dumux::RegularizedBrooksCorey<Scalar>;
+    using TwoPMaterialLaw = Dumux::EffToAbsLaw<EffMaterialLaw>;
+    using MaterialLaw = Dumux::TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
+    using MaterialLawParams = MaterialLaw::Params;
 
     Scalar T = 273.15 + 25;
 
@@ -250,7 +250,7 @@ int main()
     fsRef.setPressure(nPhaseIdx, 1e6);
 
     FluidSystem::ParameterCache paramCache;
-    typedef Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem> MiscibleMultiPhaseComposition;
+    using MiscibleMultiPhaseComposition = Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem>;
     MiscibleMultiPhaseComposition::solve(fsRef, paramCache,
                                          /*setViscosity=*/false,
                                          /*setEnthalpy=*/false);
@@ -276,14 +276,14 @@ int main()
     fsRef.setPressure(wPhaseIdx, 1e6);
 
     // calulate the capillary pressure
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
     PhaseVector pc;
     MaterialLaw::capillaryPressures(pc, matParams2, fsRef);
     fsRef.setPressure(nPhaseIdx,
                       fsRef.pressure(wPhaseIdx)
                       + (pc[nPhaseIdx] - pc[wPhaseIdx]));
 
-    typedef Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem> MiscibleMultiPhaseComposition;
+    using MiscibleMultiPhaseComposition = Dumux::MiscibleMultiPhaseComposition<Scalar, FluidSystem>;
     MiscibleMultiPhaseComposition::solve(fsRef, paramCache,
                                          /*setViscosity=*/false,
                                          /*setEnthalpy=*/false);
diff --git a/test/material/pengrobinson/test_pengrobinson.cc b/test/material/pengrobinson/test_pengrobinson.cc
index d00ba053cda9c025b05dc57db1c7b0470f711a7f..b3e28857fa19e919c33d3df3da5945cdd1fcd37d 100644
--- a/test/material/pengrobinson/test_pengrobinson.cc
+++ b/test/material/pengrobinson/test_pengrobinson.cc
@@ -41,10 +41,10 @@ Scalar bringOilToSurface(FluidState &surfaceFluidState, Scalar alpha, const Flui
         numComponents = FluidSystem::numComponents
     };
 
-    typedef Dumux::NcpFlash<Scalar, FluidSystem> Flash;
-    typedef Dumux::MpLinearMaterial<numPhases, Scalar> MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
+    using Flash = Dumux::NcpFlash<Scalar, FluidSystem>;
+    using MaterialLaw = Dumux::MpLinearMaterial<numPhases, Scalar>;
+    using MaterialLawParams = typename MaterialLaw::Params;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
 
     const Scalar refPressure = 1.0135e5; // [Pa]
 
@@ -121,8 +121,8 @@ Scalar bringOilToSurface(FluidState &surfaceFluidState, Scalar alpha, const Flui
 
 int main(int argc, char** argv)
 {
-    typedef double Scalar;
-    typedef Dumux::FluidSystems::Spe5<Scalar> FluidSystem;
+    using Scalar = double;
+    using FluidSystem = Dumux::FluidSystems::Spe5<Scalar>;
 
     enum {
         numPhases = FluidSystem::numPhases,
@@ -140,14 +140,14 @@ int main(int argc, char** argv)
         C20Idx = FluidSystem::C20Idx
     };
 
-    typedef Dumux::NcpFlash<Scalar, FluidSystem> Flash;
-    typedef Dune::FieldVector<Scalar, numComponents> ComponentVector;
-    typedef Dumux::CompositionalFluidState<Scalar, FluidSystem> FluidState;
+    using Flash = Dumux::NcpFlash<Scalar, FluidSystem>;
+    using ComponentVector = Dune::FieldVector<Scalar, numComponents>;
+    using FluidState = Dumux::CompositionalFluidState<Scalar, FluidSystem>;
 
-    typedef Dumux::MpLinearMaterial<numPhases, Scalar> MaterialLaw;
-    typedef MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = Dumux::MpLinearMaterial<numPhases, Scalar>;
+    using MaterialLawParams = MaterialLaw::Params;
 
-    typedef FluidSystem::ParameterCache ParameterCache;
+    using ParameterCache = FluidSystem::ParameterCache;
 
     ////////////
     // Initialize the fluid system and create the capillary pressure
diff --git a/test/material/tabulation/test_tabulation.cc b/test/material/tabulation/test_tabulation.cc
index 4fa6d19e9332cdaa27fc5a7dfbe8e8733ff87876..18d3e6b9da334cff0e7e4d29b4de693164e681db 100644
--- a/test/material/tabulation/test_tabulation.cc
+++ b/test/material/tabulation/test_tabulation.cc
@@ -45,9 +45,9 @@ void isSame(const char *str, Scalar v, Scalar vRef, Scalar tol=1e-3)
 
 int main()
 {
-    typedef double Scalar;
-    typedef Dumux::H2O<Scalar> IapwsH2O;
-    typedef Dumux::TabulatedComponent<Scalar, IapwsH2O> TabulatedH2O;
+    using Scalar = double;
+    using IapwsH2O = Dumux::H2O<Scalar>;
+    using TabulatedH2O = Dumux::TabulatedComponent<Scalar, IapwsH2O>;
 
     Scalar tempMin = 274.15;
     Scalar tempMax = 622.15;
diff --git a/test/mixeddimension/embedded/1p2c_richards2c/richardstestproblem.hh b/test/mixeddimension/embedded/1p2c_richards2c/richardstestproblem.hh
index e7e7cdcaca43e52bdc01f14f34458c9f1286c9b0..f07997fef820ed7b3f21ec538d325b4fb62c1384 100644
--- a/test/mixeddimension/embedded/1p2c_richards2c/richardstestproblem.hh
+++ b/test/mixeddimension/embedded/1p2c_richards2c/richardstestproblem.hh
@@ -104,8 +104,8 @@ SET_BOOL_PROP(RichardsTestProblem, UseMoles, true);
  * <tt>./test_cc1p -parameterFile test_cc1p.input</tt>
  *
  * The same parameter file can be also used for 3d simulation but you need to change line
- * <tt>typedef Dune::SGrid<2,2> type;</tt> to
- * <tt>typedef Dune::SGrid<3,3> type;</tt> in the problem file
+ * <tt>using type = Dune::SGrid<2, 2>;</tt> to
+ * <tt>using type = Dune::SGrid<3, 3>;</tt> in the problem file
  * and use <tt>1p_3d.dgf</tt> in the parameter file.
  */
 template <class TypeTag>
diff --git a/test/mixeddimension/embedded/1p2c_richards2c/schursolver.hh b/test/mixeddimension/embedded/1p2c_richards2c/schursolver.hh
index e40415443358b382a6757b4de9f500283263e188..5bf3d797e253ac69f07fa5cfa53932393fd0dc35 100644
--- a/test/mixeddimension/embedded/1p2c_richards2c/schursolver.hh
+++ b/test/mixeddimension/embedded/1p2c_richards2c/schursolver.hh
@@ -49,10 +49,10 @@ class SchurComplement : public Dune::LinearOperator<X,Y>
 {
 public:
     // export types
-    // typedef DType matrix_type;
-    typedef X domain_type;
-    typedef Y range_type;
-    typedef typename X::field_type field_type;
+    // using matrix_type = DType;
+    using domain_type = X;
+    using range_type = Y;
+    using field_type = typename X::field_type;
 
     //! constructor: just store a reference to a matrix
     explicit SchurComplement (const AType& A, const BType& B,
@@ -116,13 +116,13 @@ class SchurComplementPreconditioner : public Dune::Preconditioner<X, Y>
 {
 public:
     //! \brief The matrix type the preconditioner is for.
-    // typedef M matrix_type;
+    // using matrix_type = M;
     //! \brief The domain type of the preconditioner.
-    typedef X domain_type;
+    using domain_type = X;
     //! \brief The range type of the preconditioner.
-    typedef Y range_type;
+    using range_type = Y;
     //! \brief The field type of the preconditioner.
-    typedef typename X::field_type field_type;
+    using field_type = typename X::field_type;
 
     using BulkVector = typename GET_PROP(TypeTag, SolutionVector)::SolutionVectorBulk;
     using EmbeddedVector = typename GET_PROP(TypeTag, SolutionVector)::SolutionVectorLowDim;
@@ -254,13 +254,13 @@ class BlockILU0Preconditioner : public Dune::Preconditioner<X, Y>
 {
 public:
     //! \brief The matrix type the preconditioner is for.
-    // typedef typename std::remove_const<M>::type matrix_type;
+    // using matrix_type = typename std::remove_const<M>::type;
     //! \brief The domain type of the preconditioner.
-    typedef X domain_type;
+    using domain_type = X;
     //! \brief The range type of the preconditioner.
-    typedef Y range_type;
+    using range_type = Y;
     //! \brief The field type of the preconditioner.
-    typedef typename X::field_type field_type;
+    using field_type = typename X::field_type;
 
     /*! \brief Constructor.
 
diff --git a/test/mixeddimension/embedded/1p2c_richards2c/test_rosi2c.cc b/test/mixeddimension/embedded/1p2c_richards2c/test_rosi2c.cc
index f0272d2a8d0a50aca01c6de4555b662880d6860f..f8671fc4cdbcac5f9b31e797f5bfc413009de6f3 100644
--- a/test/mixeddimension/embedded/1p2c_richards2c/test_rosi2c.cc
+++ b/test/mixeddimension/embedded/1p2c_richards2c/test_rosi2c.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(RosiTestProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(RosiTestProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/mixeddimension/embedded/1p_1p/1d3dtestproblem.hh b/test/mixeddimension/embedded/1p_1p/1d3dtestproblem.hh
index 752c4b21bda960ff8c5de772f821c6f7891f16fb..d876be4bd8951be8dbf0318996297d279d05ae43 100644
--- a/test/mixeddimension/embedded/1p_1p/1d3dtestproblem.hh
+++ b/test/mixeddimension/embedded/1p_1p/1d3dtestproblem.hh
@@ -153,7 +153,7 @@ public:
                 continue;
             hMax = std::max(geometryDiameter(geometry), hMax);
 
-            typedef Dune::QuadratureRule<Scalar, GridView::dimension> Quad;
+            using Quad = Dune::QuadratureRule<Scalar, GridView::dimension>;
             const Quad &quad = Dune::QuadratureRules<Scalar, GridView::dimension>::rule(geometry.type(), order);
             for(auto&& qp : quad)
             {
@@ -192,7 +192,7 @@ public:
             if (int(GridView::dimension) == 3 && excludeInnerBulk_ &&
                 std::sqrt(center[0]*center[0] + center[1]*center[1]) < GET_RUNTIME_PARAM_FROM_GROUP(TypeTag, Scalar, SpatialParams, Radius))
                 continue;
-            typedef Dune::QuadratureRule<Scalar, GridView::dimension> Quad;
+            using Quad = Dune::QuadratureRule<Scalar, GridView::dimension>;
             const Quad &quad = Dune::QuadratureRules<Scalar, GridView::dimension>::rule(geometry.type(), order);
             for(auto&& qp : quad)
             {
diff --git a/test/mixeddimension/embedded/1p_1p/test_1p_1p.cc b/test/mixeddimension/embedded/1p_1p/test_1p_1p.cc
index d9a1e2cdaa999448ca8388ef178a756c5d9f144d..0f377bc9e9e423097b93454de41fc528163a62be 100644
--- a/test/mixeddimension/embedded/1p_1p/test_1p_1p.cc
+++ b/test/mixeddimension/embedded/1p_1p/test_1p_1p.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(TestOneDThreeDCCProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(TestOneDThreeDCCProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/mixeddimension/embedded/1p_richards/richardstestproblem.hh b/test/mixeddimension/embedded/1p_richards/richardstestproblem.hh
index 3fa42f3195b1dccf99f41aa5806c8a660f671597..c4c16856889c77c474f843a29b41ee995d3c4dc5 100644
--- a/test/mixeddimension/embedded/1p_richards/richardstestproblem.hh
+++ b/test/mixeddimension/embedded/1p_richards/richardstestproblem.hh
@@ -94,8 +94,8 @@ SET_STRING_PROP(RichardsTestProblem, GridParameterGroup, "SoilGrid");
  * <tt>./test_cc1p -parameterFile test_cc1p.input</tt>
  *
  * The same parameter file can be also used for 3d simulation but you need to change line
- * <tt>typedef Dune::SGrid<2,2> type;</tt> to
- * <tt>typedef Dune::SGrid<3,3> type;</tt> in the problem file
+ * <tt>using type = Dune::SGrid<2, 2>;</tt> to
+ * <tt>using type = Dune::SGrid<3, 3>;</tt> in the problem file
  * and use <tt>1p_3d.dgf</tt> in the parameter file.
  */
 template <class TypeTag>
diff --git a/test/mixeddimension/embedded/1p_richards/test_rosi.cc b/test/mixeddimension/embedded/1p_richards/test_rosi.cc
index 794c45743772791057b26212f249eb85243d32f6..c6afa3a50ac985df1685c89414c0801b0a7bf48e 100644
--- a/test/mixeddimension/embedded/1p_richards/test_rosi.cc
+++ b/test/mixeddimension/embedded/1p_richards/test_rosi.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(RosiTestProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(RosiTestProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2c_1p2c.cc b/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2c_1p2c.cc
index 40bba0e65f42812e9f0216649f725235b9d07d4c..2cb680427e7a3e9b0fb367f32b1956940b1002b8 100644
--- a/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2c_1p2c.cc
+++ b/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2c_1p2c.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(OnePTwoCIFacetCoupling) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(OnePTwoCIFacetCoupling);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2cni_1p2cni.cc b/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2cni_1p2cni.cc
index 4dac2687e96f895996a21ac04364de8527c6d5ac..26ca7726421b0e965e6faae72ad4987df9d26aea 100644
--- a/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2cni_1p2cni.cc
+++ b/test/mixeddimension/facet/1p2c_1p2c/test_fracture_1p2cni_1p2cni.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(OnePTwoCNIFacetCoupling) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(OnePTwoCNIFacetCoupling);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/mixeddimension/facet/1p_1p/test_fracture_1p_1p.cc b/test/mixeddimension/facet/1p_1p/test_fracture_1p_1p.cc
index 2aed429e429e8c63542bc0f0e94f1e4d95dab2ea..23f7457e3297c6759efc4dc3e97030df8cf29447 100644
--- a/test/mixeddimension/facet/1p_1p/test_fracture_1p_1p.cc
+++ b/test/mixeddimension/facet/1p_1p/test_fracture_1p_1p.cc
@@ -40,6 +40,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(OnePFacetCoupling) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(OnePFacetCoupling);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/1p/implicit/1ptestproblem.hh b/test/porousmediumflow/1p/implicit/1ptestproblem.hh
index 632bcb93af1a94c7a330035d2dc30b8a4edbfcd1..81c6a9aebf435b331004192552fc8b4e37c5326c 100644
--- a/test/porousmediumflow/1p/implicit/1ptestproblem.hh
+++ b/test/porousmediumflow/1p/implicit/1ptestproblem.hh
@@ -85,8 +85,8 @@ SET_TYPE_PROP(OnePTestProblem, SpatialParams, OnePTestSpatialParams<TypeTag> );
  * <tt>./test_cc1p -parameterFile test_cc1p.input</tt>
  *
  * The same parameter file can be also used for 3d simulation but you need to change line
- * <tt>typedef Dune::YaspGrid<2> type;</tt> to
- * <tt>typedef Dune::YaspGrid<3> type;</tt> in the problem file
+ * <tt>using type = Dune::YaspGrid<2>;</tt> to
+ * <tt>using type = Dune::YaspGrid<3>;</tt> in the problem file
  * and use <tt>test_1p_3d.dgf</tt> in the parameter file.
  */
 template <class TypeTag>
diff --git a/test/porousmediumflow/1p/sequential/resultevaluation.hh b/test/porousmediumflow/1p/sequential/resultevaluation.hh
index e196f156bbeaacae90605fd98f5b9f0ee87b362f..89db871152a0c0cab22542549cc7c1e7b94f9bcd 100644
--- a/test/porousmediumflow/1p/sequential/resultevaluation.hh
+++ b/test/porousmediumflow/1p/sequential/resultevaluation.hh
@@ -71,12 +71,12 @@ public:
     void evaluate(const GridView& gridView,
             Problem& problem, bool consecutiveNumbering = false)
     {
-        typedef typename GridView::Grid Grid;
-        typedef typename Grid::ctype Scalar;
+        using Grid = typename GridView::Grid;
+        using Scalar = typename Grid::ctype;
         enum {dim=Grid::dimension};
-        typedef typename Grid::template Codim<0>::Entity Element;
-        typedef typename Element::Geometry Geometry;
-        typedef typename Geometry::JacobianInverseTransposed JacobianInverseTransposed;
+        using Element = typename Grid::template Codim<0>::Entity;
+        using Geometry = typename Element::Geometry;
+        using JacobianInverseTransposed = typename Geometry::JacobianInverseTransposed;
 
         uMin = 1e100;
         uMax = -1e100;
@@ -103,7 +103,7 @@ public:
             // element geometry
             const Geometry& geometry = element.geometry();
             Dune::GeometryType geomType = geometry.type();
-            typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+            using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
             const Dune::FieldVector<Scalar,dim>& local = ReferenceElements::general(geomType).position(0, 0);
             Dune::FieldVector<Scalar,dim> globalPos = geometry.global(local);
 
diff --git a/test/porousmediumflow/1p/sequential/resultevaluation3d.hh b/test/porousmediumflow/1p/sequential/resultevaluation3d.hh
index 9aef347870e33a7eb51d0be9d108a1074a052dc4..1595aed2d7de855eadcfe982d5f9bf9dcfe7ed28 100644
--- a/test/porousmediumflow/1p/sequential/resultevaluation3d.hh
+++ b/test/porousmediumflow/1p/sequential/resultevaluation3d.hh
@@ -82,18 +82,18 @@ public:
     void evaluate(const Grid& grid, ProblemType& problem,
                   SolutionType& solution, bool pureNeumann = false)
     {
-        typedef typename Grid::Traits::template Codim<0>::Entity Entity;
-        typedef typename Entity::Geometry Geometry;
-        typedef typename Grid::LevelGridView GV;
-        typedef typename GV::IndexSet IS;
-        typedef Dune::MultipleCodimMultipleGeomTypeMapper<GV,Dune::MCMGElementLayout> ElementMapper;
-        typedef Dune::MultipleCodimMultipleGeomTypeMapper<GV,FaceLayout> FaceMapper;
-        typedef typename Grid::ctype ct;
+        using Entity = typename Grid::Traits::template Codim<0>::Entity;
+        using Geometry = typename Entity::Geometry;
+        using GV = typename Grid::LevelGridView;
+        using IS = typename GV::IndexSet;
+        using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GV, Dune::MCMGElementLayout>;
+        using FaceMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GV, FaceLayout>;
+        using ct = typename Grid::ctype;
 
         enum{dim = Grid::dimension};
 
-        typedef typename Geometry::JacobianInverseTransposed JacobianInverseTransposed;
-        typedef typename Dune::ReferenceElements<ct, dim> ReferenceElements;
+        using JacobianInverseTransposed = typename Geometry::JacobianInverseTransposed;
+        using ReferenceElements = Dune::ReferenceElements<ct, dim>;
         const GV& gridview(grid.levelGridView(grid.maxLevel()));
         const IS& indexset(gridview.indexSet());
         ElementMapper elementMapper(gridview);
@@ -418,15 +418,15 @@ public:
     void evaluate(const GridView& gridView,
             Problem& problem, bool consecutiveNumbering = false)
     {
-        typedef typename GridView::Grid Grid;
-        typedef typename Grid::ctype Scalar;
+        using Grid = typename GridView::Grid;
+        using Scalar = typename Grid::ctype;
         enum {dim=Grid::dimension};
-        typedef typename Grid::template Codim<0>::Entity Element;
-        typedef typename Element::Geometry Geometry;
-        typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout> ElementMapper;
-        typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > SolVector;
-        typedef typename Geometry::JacobianInverseTransposed JacobianInverseTransposed;
-        typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
+        using Element = typename Grid::template Codim<0>::Entity;
+        using Geometry = typename Element::Geometry;
+        using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout>;
+        using SolVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+        using JacobianInverseTransposed = typename Geometry::JacobianInverseTransposed;
+        using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
 
         ElementMapper elementMapper(gridView);
         SolVector exactSol(gridView.size(0));
@@ -704,14 +704,14 @@ public:
     void evaluateCP(const GridView& gridView, Problem& problem,
             const SolVector& solution, const VelVector& velocity, bool switchNormals = false)
     {
-        typedef typename GridView::Grid Grid;
-        typedef typename Grid::ctype Scalar;
+        using Grid = typename GridView::Grid;
+        using Scalar = typename Grid::ctype;
         enum {dim=Grid::dimension, maxIntersections = 12};
-        typedef typename Grid::template Codim<0>::Entity Element;
-        typedef typename Element::Geometry Geometry;
-        typedef Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout> ElementMapper;
-        typedef typename Dune::ReferenceElements<Scalar, dim> ReferenceElements;
-        typedef typename Dune::ReferenceElements<Scalar, dim-1> ReferenceFaces;
+        using Element = typename Grid::template Codim<0>::Entity;
+        using Geometry = typename Element::Geometry;
+        using ElementMapper = Dune::MultipleCodimMultipleGeomTypeMapper<GridView, Dune::MCMGElementLayout>;
+        using ReferenceElements = Dune::ReferenceElements<Scalar, dim>;
+        using ReferenceFaces = Dune::ReferenceElements<Scalar, dim-1>;
 
         ElementMapper elementMapper(gridView);
 
diff --git a/test/porousmediumflow/1p/sequential/test_1p.cc b/test/porousmediumflow/1p/sequential/test_1p.cc
index 017e61e72e140a52d38e22bf4bf44e43df23e88c..944e06aedc5f3f962c96a80be78fc3b5a6b6b414 100644
--- a/test/porousmediumflow/1p/sequential/test_1p.cc
+++ b/test/porousmediumflow/1p/sequential/test_1p.cc
@@ -60,7 +60,7 @@ void usage(const char *progName, const std::string &errorMsg)
 ////////////////////////
 int main(int argc, char** argv)
 {
-    typedef TTAG(TestProblemOneP) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(TestProblemOneP);
 
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/1p/sequential/test_1pproblem.hh b/test/porousmediumflow/1p/sequential/test_1pproblem.hh
index b239f2e0bf2533f2605556c474a17c7355089b41..ce12305a1effe1092a80aa282fe3b98bd78d830c 100644
--- a/test/porousmediumflow/1p/sequential/test_1pproblem.hh
+++ b/test/porousmediumflow/1p/sequential/test_1pproblem.hh
@@ -72,28 +72,28 @@ SET_TYPE_PROP(TestProblemOneP, Problem, TestProblemOneP<TypeTag>);
 template<class TypeTag>
 class TestProblemOneP: public DiffusionProblem1P<TypeTag >
 {
-    typedef DiffusionProblem1P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using ParentType = DiffusionProblem1P<TypeTag>;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid Fluid;
+    using Fluid = typename GET_PROP_TYPE(TypeTag, FluidSystem)::Fluid;
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     enum
     {
         dim = GridView::dimension, dimWorld = GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
 
 public:
diff --git a/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh b/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh
index 7a36811f02e8177aca24ba95d0f896f40706f653..0d13ca6bf376d0704e281577acbeb51deb7fdfb5 100644
--- a/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh
+++ b/test/porousmediumflow/1p/sequential/test_1pspatialparams.hh
@@ -36,19 +36,19 @@ namespace Dumux
 template<class TypeTag>
 class TestOnePSpatialParams: public SequentialFVSpatialParamsOneP<TypeTag>
 {
-    typedef SequentialFVSpatialParamsOneP<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::IndexSet IndexSet;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = SequentialFVSpatialParamsOneP<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using IndexSet = typename GridView::IndexSet;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
 
     enum
         {dim=Grid::dimension, dimWorld=Grid::dimensionworld};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
 
diff --git a/test/porousmediumflow/1p/sequential/test_diffusion.cc b/test/porousmediumflow/1p/sequential/test_diffusion.cc
index 27956cb54fcd0e969f1a602f069d41bbd8d4324f..35364fe8b773675bbab13f8a2523f6a4378378c5 100644
--- a/test/porousmediumflow/1p/sequential/test_diffusion.cc
+++ b/test/porousmediumflow/1p/sequential/test_diffusion.cc
@@ -51,7 +51,7 @@ void usage(const char *progName, const std::string &errorMsg)
 int main(int argc, char** argv)
 {
     try {
-        typedef TTAG(FVVelocity2PTestProblem) TypeTag;
+        using TypeTag = TTAG(FVVelocity2PTestProblem);
 
         // initialize MPI, finalize is done automatically on exit
         Dune::MPIHelper::instance(argc, argv);
@@ -74,7 +74,7 @@ int main(int argc, char** argv)
         Dune::Timer timer;
         bool consecutiveNumbering = true;
 
-        typedef GET_PROP_TYPE(TTAG(FVVelocity2PTestProblem), Problem) FVProblem;
+        using FVProblem = GET_PROP_TYPE(TTAG(FVVelocity2PTestProblem), Problem);
         FVProblem fvProblem(grid.leafGridView());
         fvProblem.setName("fvdiffusion");
         timer.reset();
@@ -85,7 +85,7 @@ int main(int argc, char** argv)
         Dumux::ResultEvaluation fvResult;
         fvResult.evaluate(grid.leafGridView(), fvProblem, consecutiveNumbering);
 
-        typedef GET_PROP_TYPE(TTAG(FVMPFAOVelocity2PTestProblem), Problem) MPFAOProblem;
+        using MPFAOProblem = GET_PROP_TYPE(TTAG(FVMPFAOVelocity2PTestProblem), Problem);
         MPFAOProblem mpfaProblem(grid.leafGridView());
         mpfaProblem.setName("fvmpfaodiffusion");
         timer.reset();
@@ -95,7 +95,7 @@ int main(int argc, char** argv)
         Dumux::ResultEvaluation mpfaResult;
         mpfaResult.evaluate(grid.leafGridView(), mpfaProblem, consecutiveNumbering);
 
-        typedef GET_PROP_TYPE(TTAG(MimeticPressure2PTestProblem), Problem) MimeticProblem;
+        using MimeticProblem = GET_PROP_TYPE(TTAG(MimeticPressure2PTestProblem), Problem);
         MimeticProblem mimeticProblem(grid.leafGridView());
         mimeticProblem.setName("mimeticdiffusion");
         timer.reset();
diff --git a/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh b/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh
index ce58140c44e991dc3961e68336f70f0769cb549a..e796916345ea0a7b4a412b26901d8f139d5d1438 100644
--- a/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh
+++ b/test/porousmediumflow/1p/sequential/test_diffusionproblem.hh
@@ -149,14 +149,14 @@ SET_PROP(MimeticPressure2PTestProblem, FluidSystem)
 template<class TypeTag>
 class TestDiffusionProblem: public DiffusionProblem2P<TypeTag>
 {
-    typedef DiffusionProblem2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = DiffusionProblem2P<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     using WettingPhase = typename GET_PROP(TypeTag, FluidSystem)::WettingPhase;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     enum
     {
@@ -170,16 +170,16 @@ class TestDiffusionProblem: public DiffusionProblem2P<TypeTag>
         swIdx = Indices::swIdx
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, dim> LocalPosition;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
 
 public:
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolution;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolution = typename SolutionTypes::ScalarSolution;
 
     TestDiffusionProblem(const GridView &gridView) :
         ParentType(gridView), velocity_(*this)
diff --git a/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh b/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh
index 19ec42c74c9e50c852187245288240c962083117..b1e275aaf218dce08f8c07d1bb0324f2fc45a610 100644
--- a/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh
+++ b/test/porousmediumflow/1p/sequential/test_diffusionproblem3d.hh
@@ -96,15 +96,15 @@ NEW_TYPE_TAG(MimeticTestProblem, INHERITS_FROM(MimeticPressureTwoP, DiffusionTes
 template<class TypeTag>
 class TestDiffusion3DProblem: public DiffusionProblem2P<TypeTag>
 {
-    typedef DiffusionProblem2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = DiffusionProblem2P<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
 
     enum
     {
@@ -120,16 +120,16 @@ class TestDiffusion3DProblem: public DiffusionProblem2P<TypeTag>
         pressureEqIdx = Indices::pressureEqIdx,
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename SolutionTypes::ScalarSolution ScalarSolution;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using ScalarSolution = typename SolutionTypes::ScalarSolution;
 
     TestDiffusion3DProblem(const GridView &gridView) :
         ParentType(gridView), velocity_(*this)
diff --git a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh
index a0e4d4d6f37800606b6853a2187015aa3757503b..988c67e18d4f8ebc568a0c2047013048286e722d 100644
--- a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh
+++ b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams.hh
@@ -48,10 +48,10 @@ SET_TYPE_PROP(TestDiffusionSpatialParams, SpatialParams, TestDiffusionSpatialPar
 SET_PROP(TestDiffusionSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef LinearMaterial<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -62,25 +62,25 @@ public:
 template<class TypeTag>
 class TestDiffusionSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::IndexSet IndexSet;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using IndexSet = typename GridView::IndexSet;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
     ///@cond false
-    typedef typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution ScalarSolution;
+    using ScalarSolution = typename GET_PROP(TypeTag, SolutionTypes)::ScalarSolution;
     ///@endcond
     enum
         {dim=Grid::dimension, dimWorld=Grid::dimensionworld};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     const FieldMatrix& intrinsicPermeability (const Element& element) const
     {
diff --git a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh
index c628a9f1c04cc9fb5ba5f5007a7ee1f04dd39b83..860ae3384af213a75281e4dddabbb6300332ea4c 100644
--- a/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh
+++ b/test/porousmediumflow/1p/sequential/test_diffusionspatialparams3d.hh
@@ -47,10 +47,10 @@ SET_TYPE_PROP(TestDiffusionSpatialParams3d, SpatialParams, TestDiffusionSpatialP
 SET_PROP(TestDiffusionSpatialParams3d, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef LinearMaterial<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -61,22 +61,22 @@ public:
 template<class TypeTag>
 class TestDiffusionSpatialParams3d: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
 
     enum
         {dim=Grid::dimension, dimWorld=Grid::dimensionworld, numEq=1};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     const FieldMatrix& intrinsicPermeabilityAtPos (const GlobalPosition& globalPos) const
     {
diff --git a/test/porousmediumflow/1pncmin/implicit/test_box1pncmin.cc b/test/porousmediumflow/1pncmin/implicit/test_box1pncmin.cc
index fc844ca2b91ec1d33791405d6bc8cc3c72b0294f..834140b1f6e9eea5f359b8664b175212ae842e56 100644
--- a/test/porousmediumflow/1pncmin/implicit/test_box1pncmin.cc
+++ b/test/porousmediumflow/1pncmin/implicit/test_box1pncmin.cc
@@ -50,6 +50,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(ThermoChemBoxProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(ThermoChemBoxProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/1pncmin/implicit/test_cc1pncmin.cc b/test/porousmediumflow/1pncmin/implicit/test_cc1pncmin.cc
index 953a59ddf432bd50e507030f4b69cd75821c0824..ce0ef2af1b032a118c4cacd020eac51fc0d56fbe 100644
--- a/test/porousmediumflow/1pncmin/implicit/test_cc1pncmin.cc
+++ b/test/porousmediumflow/1pncmin/implicit/test_cc1pncmin.cc
@@ -50,6 +50,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(ThermoChemCCProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(ThermoChemCCProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh b/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh
index e25451dd4d73e7369c3093700ee6ae544ee99bcd..3fc390793c4af543b86cfd378c9fc3aa9f1b45ed 100644
--- a/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh
+++ b/test/porousmediumflow/2p/sequential/buckleyleverettanalyticsolution.hh
@@ -64,18 +64,18 @@ struct CheckMaterialLaw<Scalar, EffToAbsLaw< LinearMaterial<Scalar> > >
 
 template<class TypeTag> class BuckleyLeverettAnalytic
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
+    using MaterialLawParams = typename MaterialLaw::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -87,8 +87,8 @@ template<class TypeTag> class BuckleyLeverettAnalytic
         nPhaseIdx = Indices::nPhaseIdx
     };
 
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > BlockVector;
-    typedef Dune::FieldVector<Scalar, dimworld> GlobalPosition;
+    using BlockVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimworld>;
 
 private:
 
diff --git a/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh b/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh
index 2a3f277e7dcb3883f58d677066c84ba494f3f7d5..63649ca7bc6af408a6a017f1cba8e3f4634034b0 100644
--- a/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh
+++ b/test/porousmediumflow/2p/sequential/mcwhorteranalyticsolution.hh
@@ -42,21 +42,21 @@ namespace Dumux
 template<typename TypeTag>
 class McWhorterAnalytic
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Problem) Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GET_PROP_TYPE(TypeTag, SpatialParams) SpatialParams;
-    typedef typename SpatialParams::MaterialLaw MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+    using MaterialLaw = typename SpatialParams::MaterialLaw;
+    using MaterialLawParams = typename MaterialLaw::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     enum
     {
@@ -69,8 +69,8 @@ class McWhorterAnalytic
         saturationIdx = Indices::saturationIdx
     };
 
-    typedef Dune::BlockVector<Dune::FieldVector<Scalar, 1> > BlockVector;
-    typedef Dune::FieldVector<Scalar, dimworld> GlobalPosition;
+    using BlockVector = Dune::BlockVector<Dune::FieldVector<Scalar, 1> >;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimworld>;
 
 private:
 
diff --git a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
index 43c613cd8566bfa5f5988cd20b598e408b0279e3..e94242e6c8366bb6d9a9debfff73662b69dd67bf 100644
--- a/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_3d2pproblem.hh
@@ -81,11 +81,11 @@ SET_INT_PROP(ThreeDTwoPTestProblem, Formulation, SequentialTwoPCommonIndices::pn
 SET_PROP(ThreeDTwoPTestProblem, SpatialParams)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
 public:
-    typedef Test3d2pSpatialParams<TypeTag> type;
+    using type = Test3d2pSpatialParams<TypeTag>;
 };
 
 #if PROBLEM == 1
@@ -119,19 +119,19 @@ NEW_TYPE_TAG(MimeticAdaptiveTwoPTestProblem, INHERITS_FROM(MimeticPressureTwoPAd
 template<class TypeTag>
 class Test3D2PProblem: public IMPESProblem2P<TypeTag>
 {
-typedef Test3D2PProblem<TypeTag> ThisType;
-typedef IMPESProblem2P<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+using ThisType = Test3D2PProblem<TypeTag>;
+using ParentType = IMPESProblem2P<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP(TypeTag, SolutionTypes)::PrimaryVariables PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using PrimaryVariables = typename GET_PROP(TypeTag, SolutionTypes)::PrimaryVariables;
 
 enum
 {
@@ -152,14 +152,14 @@ enum
     satEqIdx = Indices::satEqIdx
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef typename GridView::Intersection Intersection;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
-typedef Dune::FieldVector<Scalar, dim> LocalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using Intersection = typename GridView::Intersection;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+using LocalPosition = Dune::FieldVector<Scalar, dim>;
 
-typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
 public:
 
diff --git a/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh b/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh
index ac27897ccac6f5fdf32113481cea29e04d86c0c3..d6bb15f2e86e045fabf5d637c0794c11aa1cf461 100644
--- a/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh
+++ b/test/porousmediumflow/2p/sequential/test_3d2pspatialparams.hh
@@ -47,11 +47,11 @@ SET_TYPE_PROP(Test3d2pSpatialParams, SpatialParams, Test3d2pSpatialParams<TypeTa
 SET_PROP(Test3d2pSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
-//    typedef LinearMaterial<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = RegularizedBrooksCorey<Scalar>;
+//    using RawMaterialLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -63,23 +63,23 @@ public:
 template<class TypeTag>
 class Test3d2pSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
 
     enum
         {dim=Grid::dimension, dimWorld=Grid::dimensionworld, numEq=1};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<CoordScalar, dim> LocalPosition;
-    typedef Dune::FieldMatrix<Scalar,dim,dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using LocalPosition = Dune::FieldVector<CoordScalar, dim>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     void update (Scalar saturationW, const Element& element)
     {
diff --git a/test/porousmediumflow/2p/sequential/test_impes.cc b/test/porousmediumflow/2p/sequential/test_impes.cc
index 35f67d1e997df6431a3cff4e28479d4512e4a6a6..43bbdb1ed5e9c1102665b61e1d5e4f23c30c12fb 100644
--- a/test/porousmediumflow/2p/sequential/test_impes.cc
+++ b/test/porousmediumflow/2p/sequential/test_impes.cc
@@ -58,6 +58,6 @@ void usage(const char *progName, const std::string &errorMsg)
 ////////////////////////
 int main(int argc, char** argv)
 {
-    typedef TTAG(IMPESTestProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(IMPESTestProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptive.cc b/test/porousmediumflow/2p/sequential/test_impesadaptive.cc
index 83be9e15841b69a9eff17cdaccff7148657ca827..f8c1f03d89623bb654442047c5d838b69084a086 100644
--- a/test/porousmediumflow/2p/sequential/test_impesadaptive.cc
+++ b/test/porousmediumflow/2p/sequential/test_impesadaptive.cc
@@ -53,7 +53,7 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-        typedef TTAG(TestIMPESAdaptiveProblem) ProblemTypeTag;
+        using ProblemTypeTag = TTAG(TestIMPESAdaptiveProblem);
         return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
 #else
diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
index 28b3ccd084953049978c030ba9f5ee5bac441d0b..d2b2db86de4e9f45b80c74a91b8089ced4b3f787 100644
--- a/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesadaptiveproblem.hh
@@ -92,15 +92,15 @@ SET_SCALAR_PROP(TestIMPESAdaptiveProblem, ImpetCFLFactor, 0.95);
 template<class TypeTag>
 class TestIMPESAdaptiveProblem: public IMPESProblem2P<TypeTag>
 {
-    typedef IMPESProblem2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = IMPESProblem2P<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     using WettingPhase = typename GET_PROP(TypeTag, FluidSystem)::WettingPhase;
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
     enum
     {
@@ -116,15 +116,15 @@ class TestIMPESAdaptiveProblem: public IMPESProblem2P<TypeTag>
         eqIdxSat = Indices::satEqIdx
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename GridView::Traits::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using Element = typename GridView::Traits::template Codim<0>::Entity;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
+    using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
 public:
     TestIMPESAdaptiveProblem(TimeManager &timeManager, const GridView &gridView) :
diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptiverestart.cc b/test/porousmediumflow/2p/sequential/test_impesadaptiverestart.cc
index 0cddd5bc88def2d420380567b14448a00cfcac83..cfc7600c05678636c24274c2a4595018931e7780 100644
--- a/test/porousmediumflow/2p/sequential/test_impesadaptiverestart.cc
+++ b/test/porousmediumflow/2p/sequential/test_impesadaptiverestart.cc
@@ -51,7 +51,7 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-        typedef TTAG(TestIMPESAdaptiveRestartProblem) ProblemTypeTag;
+        using ProblemTypeTag = TTAG(TestIMPESAdaptiveRestartProblem);
         return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
 #else
diff --git a/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh b/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh
index 66ef11478184fe470123bfffd07d978b2630455b..b379565131bbc05fed3d81a86edefac92558dc14 100644
--- a/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesadaptivespatialparams.hh
@@ -48,10 +48,10 @@ SET_TYPE_PROP(TestIMPESAdaptiveSpatialParams, SpatialParams, TestIMPESAdaptiveSp
 SET_PROP(TestIMPESAdaptiveSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = RegularizedBrooksCorey<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -63,21 +63,21 @@ public:
 template<class TypeTag>
 class TestIMPESAdaptiveSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename Grid::ctype CoordScalar;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using CoordScalar = typename Grid::ctype;
 
     enum
         {dimWorld=Grid::dimensionworld};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
 
     Scalar intrinsicPermeability (const Element& element) const
diff --git a/test/porousmediumflow/2p/sequential/test_impesproblem.hh b/test/porousmediumflow/2p/sequential/test_impesproblem.hh
index 6a81e75d49752ce2dfafd20fa50f4da22dafb5b4..fb0090aa54b14285d51e3f98745c835ad0ff1ac6 100644
--- a/test/porousmediumflow/2p/sequential/test_impesproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesproblem.hh
@@ -120,14 +120,14 @@ SET_TYPE_PROP(IMPESTestProblemWithAMG, GridCreator, GridCreator<TypeTag>);
 template<class TypeTag>
 class IMPESTestProblem: public IMPESProblem2P<TypeTag>
 {
-typedef IMPESProblem2P<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+using ParentType = IMPESProblem2P<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 using WettingPhase = typename GET_PROP(TypeTag, FluidSystem)::WettingPhase;
 
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
 enum
 {
@@ -143,14 +143,14 @@ enum
     eqIdxSat = Indices::satEqIdx
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
 public:
 IMPESTestProblem(TimeManager &timeManager, const GridView &gridView) :
diff --git a/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh b/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh
index a4f025a7896741fa1a596c3df8e2b2aac399ddc0..3ad979fcb056e16bd52b756d6b8e7cea0ff051f2 100644
--- a/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh
+++ b/test/porousmediumflow/2p/sequential/test_impesspatialparams.hh
@@ -48,10 +48,10 @@ SET_TYPE_PROP(TestIMPESSpatialParams, SpatialParams, TestIMPESSpatialParams<Type
 SET_PROP(TestIMPESSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = RegularizedBrooksCorey<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -63,21 +63,21 @@ public:
 template<class TypeTag>
 class TestIMPESSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename Grid::ctype CoordScalar;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using CoordScalar = typename Grid::ctype;
 
     enum
         {dimWorld=Grid::dimensionworld};
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
 
     Scalar intrinsicPermeability (const Element& element) const
diff --git a/test/porousmediumflow/2p/sequential/test_impeswithamg.cc b/test/porousmediumflow/2p/sequential/test_impeswithamg.cc
index 46df28730bab6699649e87f7597df184490cbe3b..ddbfa1a5120b6f93da4d47d71cf257bcbbc904ec 100644
--- a/test/porousmediumflow/2p/sequential/test_impeswithamg.cc
+++ b/test/porousmediumflow/2p/sequential/test_impeswithamg.cc
@@ -59,6 +59,6 @@ void usage(const char *progName, const std::string &errorMsg)
 ////////////////////////
 int main(int argc, char** argv)
 {
-    typedef TTAG(IMPESTestProblemWithAMG) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(IMPESTestProblemWithAMG);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
index 3566b3b7d49eac000145106d0d6aafdbcffe3258..5827d8b910abab8c9422f06332434a1e1b5f2055 100644
--- a/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_mpfa2pproblem.hh
@@ -125,20 +125,20 @@ NEW_TYPE_TAG(MPFALAdaptiveTwoPTestProblem, INHERITS_FROM(FvMpfaL2dPressureTwoPAd
 template<class TypeTag>
 class MPFATwoPTestProblem: public IMPESProblem2P<TypeTag>
 {
-typedef IMPESProblem2P<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+using ParentType = IMPESProblem2P<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
 using WettingPhase = typename GET_PROP(TypeTag, FluidSystem)::WettingPhase;
 
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
+using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
 
 enum
 {
@@ -158,10 +158,10 @@ enum
     eqIdxSat = Indices::satEqIdx
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 MPFATwoPTestProblem(TimeManager &timeManager,const GridView &gridView) :
diff --git a/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh b/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh
index 223a76eb67f9ec567c10459ef42934046a2a35c7..66a52132db6f78c1e33c217704f278b577ac2322 100644
--- a/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh
+++ b/test/porousmediumflow/2p/sequential/test_mpfa2pspatialparams.hh
@@ -46,10 +46,10 @@ SET_TYPE_PROP(Test2PSpatialParams, SpatialParams, Test2PSpatialParams<TypeTag>);
 SET_PROP(Test2PSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedBrooksCorey<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = RegularizedBrooksCorey<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -58,24 +58,24 @@ public:
 template<class TypeTag>
 class Test2PSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
 
     enum
     {
         dim = Grid::dimension, dimWorld = Grid::dimensionworld
     };
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldVector<CoordScalar, dimWorld> GlobalPosition;
-    typedef Dune::FieldMatrix<Scalar, dim, dim> FieldMatrix;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     const FieldMatrix& intrinsicPermeabilityAtPos(const GlobalPosition& globalPos) const
     {
diff --git a/test/porousmediumflow/2p/sequential/test_transport.cc b/test/porousmediumflow/2p/sequential/test_transport.cc
index ca260c31b5a3ff432849b8f71cd8f1a681e1fced..20b79c5257981d420f9203390ea55fae4e534c50 100644
--- a/test/porousmediumflow/2p/sequential/test_transport.cc
+++ b/test/porousmediumflow/2p/sequential/test_transport.cc
@@ -60,6 +60,6 @@ void usage(const char *progName, const std::string &errorMsg)
 ////////////////////////
 int main(int argc, char** argv)
 {
-    typedef TTAG(TransportTestProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(TransportTestProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/2p/sequential/test_transportproblem.hh b/test/porousmediumflow/2p/sequential/test_transportproblem.hh
index b93176d3b6d7cb643c8f2fb94fa3780847971fa7..a065adb00e2e45dd3a1a7f19c89cf86899d2a1a4 100644
--- a/test/porousmediumflow/2p/sequential/test_transportproblem.hh
+++ b/test/porousmediumflow/2p/sequential/test_transportproblem.hh
@@ -84,17 +84,17 @@ SET_INT_PROP(TransportTestProblem, VelocityFormulation, SequentialTwoPCommonIndi
 template<class TypeTag>
 class TestTransportProblem: public TransportProblem2P<TypeTag>
 {
-    typedef TransportProblem2P<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
+    using ParentType = TransportProblem2P<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP(TypeTag, SolutionTypes) SolutionTypes;
-    typedef typename SolutionTypes::PrimaryVariables PrimaryVariables;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using SolutionTypes = typename GET_PROP(TypeTag, SolutionTypes);
+    using PrimaryVariables = typename SolutionTypes::PrimaryVariables;
 
-    typedef typename GET_PROP_TYPE(TypeTag, CellData) CellData;
+    using CellData = typename GET_PROP_TYPE(TypeTag, CellData);
 
     enum
     {
@@ -106,9 +106,9 @@ class TestTransportProblem: public TransportProblem2P<TypeTag>
         wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     TestTransportProblem(TimeManager &timeManager, const GridView &gridView) :
diff --git a/test/porousmediumflow/2p/sequential/test_transportspatialparams.hh b/test/porousmediumflow/2p/sequential/test_transportspatialparams.hh
index ae8184401565b25b5483c87665f1b2767061b083..61c3d42ac4a00699dbdc3ace5c79a35f3c2cd350 100644
--- a/test/porousmediumflow/2p/sequential/test_transportspatialparams.hh
+++ b/test/porousmediumflow/2p/sequential/test_transportspatialparams.hh
@@ -48,10 +48,10 @@ SET_TYPE_PROP(TestTransportSpatialParams, SpatialParams, TestTransportSpatialPar
 SET_PROP(TestTransportSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef LinearMaterial<Scalar> RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -62,16 +62,16 @@ public:
 template<class TypeTag>
 class TestTransportSpatialParams: public SequentialFVSpatialParams<TypeTag>
 {
-    typedef SequentialFVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using ParentType = SequentialFVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-    typedef typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     Scalar intrinsicPermeability (const Element& element) const
     {
diff --git a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
index 97635940455fd43bab7180133e3fa8a892bf552d..d306b58b831974ba82c687438de6216b8beb59f1 100644
--- a/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
+++ b/test/porousmediumflow/2p1c/implicit/steaminjectionspatialparams.hh
@@ -48,11 +48,11 @@ SET_TYPE_PROP(InjectionProblemSpatialParams, SpatialParams, Dumux::InjectionProb
 SET_PROP(InjectionProblemSpatialParams, MaterialLaw)
 {
  private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedVanGenuchten<Scalar> EffMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffMaterialLaw = RegularizedVanGenuchten<Scalar>;
  public:
     // define the material law parameterized by absolute saturations
-    typedef EffToAbsLaw<EffMaterialLaw> type;
+    using type = EffToAbsLaw<EffMaterialLaw>;
 };
 }
 
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2d.cc b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2d.cc
index 705d9e36d752fe1d241bbcbfab3baf1a9cbc7189..41ba1e3ecabd58411e476b2410a0b21f46aba72f 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2d.cc
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2d.cc
@@ -55,7 +55,7 @@ void usage(const char *progName, const std::string &errorMsg)
 // The main function using the standard start procedure
 int main(int argc, char** argv)
 {
-    typedef TTAG(Adaptive2p2c2d) TypeTag;
+    using TypeTag = TTAG(Adaptive2p2c2d);
     return Dumux::start<TypeTag>(argc, argv, usage);
 }
 
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
index 5d42dd92482fc726ed50d17c8f17b0adc3f57c4d..f28cfbd36a6e98b665325cc8e42431894287b515 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c2dproblem.hh
@@ -96,18 +96,17 @@ SET_INT_PROP(Adaptive2p2c2d, PressureFormulation, GET_PROP_TYPE(TypeTag, Indices
 template<class TypeTag = TTAG(Adaptive2p2c2d)>
 class Adaptive2p2c2d: public IMPETProblem2P2C<TypeTag>
 {
-typedef IMPETProblem2P2C<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+using ParentType = IMPETProblem2P2C<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
-// boundary typedefs
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
 enum
 {
@@ -119,11 +118,11 @@ enum
     wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef typename GridView::Intersection Intersection;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using Intersection = typename GridView::Intersection;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 Adaptive2p2c2d(TimeManager &timeManager, const GridView& gridView) :
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3d.cc b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3d.cc
index c9aede270478e0c6c820201c8c4bec5e68e845e9..e6a48fef4963a6347217386b97a2713cdf1076cb 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3d.cc
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3d.cc
@@ -55,7 +55,7 @@ void usage(const char *progName, const std::string &errorMsg)
 // The main function using the standard start procedure
 int main(int argc, char** argv)
 {
-        typedef TTAG(Adaptive2p2c3d) ProblemTypeTag;
+        using ProblemTypeTag = TTAG(Adaptive2p2c3d);
         return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
 
diff --git a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
index faba23529ee1970a6b2cf4e49f24eff2e5b5d8e1..3fbeaad65e1f234d15b45f93976c35c94cc61147 100644
--- a/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_adaptive2p2c3dproblem.hh
@@ -96,19 +96,18 @@ SET_INT_PROP(Adaptive2p2c3d, PressureFormulation, GET_PROP_TYPE(TypeTag, Indices
 template<class TypeTag = TTAG(Adaptive2p2c3d)>
 class Adaptive2p2c3d: public IMPETProblem2P2C<TypeTag>
 {
-typedef IMPETProblem2P2C<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-typedef typename GET_PROP_TYPE(TypeTag, GridCreator) GridCreator;
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-typedef typename GET_PROP_TYPE(TypeTag, SpatialParams)    SpatialParams;
-
-// boundary typedefs
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+using ParentType = IMPETProblem2P2C<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+using GridCreator = typename GET_PROP_TYPE(TypeTag, GridCreator);
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+using SpatialParams = typename GET_PROP_TYPE(TypeTag, SpatialParams);
+
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 enum
 {
     dim = GridView::dimension, dimWorld = GridView::dimensionworld
@@ -119,11 +118,11 @@ enum
     wPhaseIdx = Indices::wPhaseIdx, nPhaseIdx = Indices::nPhaseIdx
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef typename GridView::Intersection Intersection;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using Intersection = typename GridView::Intersection;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 Adaptive2p2c3d(TimeManager &timeManager, const GridView& gridView) :
diff --git a/test/porousmediumflow/2p2c/sequential/test_dec2p2c.cc b/test/porousmediumflow/2p2c/sequential/test_dec2p2c.cc
index 1a3337b245d0356f0c897b6f338efac8393c7f1a..92f3017a6081273c1cf75cb8e0f4a463df1bae72 100644
--- a/test/porousmediumflow/2p2c/sequential/test_dec2p2c.cc
+++ b/test/porousmediumflow/2p2c/sequential/test_dec2p2c.cc
@@ -59,6 +59,6 @@ void usage(const char *progName, const std::string &errorMsg)
 ////////////////////////
 int main(int argc, char** argv)
 {
-    typedef TTAG(TestDecTwoPTwoCProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(TestDecTwoPTwoCProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/2p2c/sequential/test_dec2p2c_spatialparams.hh b/test/porousmediumflow/2p2c/sequential/test_dec2p2c_spatialparams.hh
index 149271a302ef3640f95070c7a75f37c05581deb4..6d042b2634134fdd267b10a2fe0f678c2cf8db15 100644
--- a/test/porousmediumflow/2p2c/sequential/test_dec2p2c_spatialparams.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_dec2p2c_spatialparams.hh
@@ -47,10 +47,10 @@ SET_TYPE_PROP(Test2P2CSpatialParams, SpatialParams, Test2P2CSpatialParams<TypeTa
 SET_PROP(Test2P2CSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef LinearMaterial<Scalar>         RawMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using RawMaterialLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<RawMaterialLaw> type;
+    using type = EffToAbsLaw<RawMaterialLaw>;
 };
 }
 
@@ -61,19 +61,19 @@ public:
 template<class TypeTag>
 class Test2P2CSpatialParams : public SequentialFVSpatialParams<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Grid)     Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)   Scalar;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
     enum
         {dim=Grid::dimension};
-    typedef    typename Grid::Traits::template Codim<0>::Entity Element;
+    using Element = typename Grid::Traits::template Codim<0>::Entity;
 
-    typedef Dune::FieldMatrix<Scalar,dim,dim> FieldMatrix;
+    using FieldMatrix = Dune::FieldMatrix<Scalar, dim, dim>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     const FieldMatrix& intrinsicPermeability (const Element& element) const
     {
diff --git a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
index 5ccc74e0b3513e1e0f9507202d067c9a5c899fc9..575406d309f9120bbe73f56689c9f3d64c220dac 100644
--- a/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_dec2p2cproblem.hh
@@ -84,27 +84,26 @@ SET_INT_PROP(TestDecTwoPTwoCProblem, BoundaryMobility, GET_PROP_TYPE(TypeTag, In
 template<class TypeTag>
 class TestDecTwoPTwoCProblem: public IMPETProblem2P2C<TypeTag>
 {
-typedef IMPETProblem2P2C<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+using ParentType = IMPETProblem2P2C<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
-// boundary typedefs
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
 enum
 {
     dim = GridView::dimension, dimWorld = GridView::dimensionworld
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef typename GridView::Intersection Intersection;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using Intersection = typename GridView::Intersection;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 TestDecTwoPTwoCProblem(TimeManager &timeManager, const GridView &gridView) :
diff --git a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2c.cc b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2c.cc
index 419911c18ebf2f972408dde9cf4c710339d16b5f..3f8b22d6907491db3c697a96b55ff0852aa66a4f 100644
--- a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2c.cc
+++ b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2c.cc
@@ -45,10 +45,10 @@ void usage(const char *progname, const std::string &errorMsg = "")
 int main(int argc, char** argv)
 {
     try {
-        typedef TTAG(TestMultTwoPTwoCProblem) TypeTag;
-        typedef GET_PROP_TYPE(TypeTag, Grid)    Grid;
-        typedef GET_PROP_TYPE(TypeTag, Problem) Problem;
-        typedef GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+        using TypeTag = TTAG(TestMultTwoPTwoCProblem);
+        using Grid = GET_PROP_TYPE(TypeTag, Grid);
+        using Problem = GET_PROP_TYPE(TypeTag, Problem);
+        using TimeManager = GET_PROP_TYPE(TypeTag, TimeManager);
 
         static const int dim = Grid::dimension;
 
diff --git a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
index d60754d3269736057dd4279501dd9e4408f45c84..d2b8a9224d5ce3a209f010c39c4708d345a5fefb 100644
--- a/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
+++ b/test/porousmediumflow/2p2c/sequential/test_multiphysics2p2cproblem.hh
@@ -92,27 +92,26 @@ SET_SCALAR_PROP(TestMultTwoPTwoCProblem, ImpetCFLFactor, 0.8);
 template<class TypeTag>
 class TestMultTwoPTwoCProblem: public IMPETProblem2P2C<TypeTag>
 {
-typedef IMPETProblem2P2C<TypeTag> ParentType;
-typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+using ParentType = IMPETProblem2P2C<TypeTag>;
+using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
-typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
-// boundary typedefs
-typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
+using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
 
 enum
 {
     dim = GridView::dimension, dimWorld = GridView::dimensionworld
 };
 
-typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
-typedef typename GridView::Traits::template Codim<0>::Entity Element;
-typedef typename GridView::Intersection Intersection;
-typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+using Element = typename GridView::Traits::template Codim<0>::Entity;
+using Intersection = typename GridView::Intersection;
+using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
 TestMultTwoPTwoCProblem(TimeManager &timeManager, const GridView &gridView, const GlobalPosition upperRight = 0) :
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
index 48dde16b1e51e33c2526345d35c97f093028894a..583fe4a5074f4ab1c34432fe4bdedf8b527316d7 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdproblem.hh
@@ -79,14 +79,14 @@ SET_BOOL_PROP(SagdProblem, UseMoles, false);
 template <class TypeTag >
 class SagdProblem : public ImplicitPorousMediaProblem<TypeTag>
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GridView::Grid Grid;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Grid = typename GridView::Grid;
 
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
 
     // copy some indices for convenience
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         pressureIdx = Indices::pressureIdx,
         switch1Idx = Indices::switch1Idx,
@@ -115,19 +115,19 @@ class SagdProblem : public ImplicitPorousMediaProblem<TypeTag>
     };
 
 
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
 
diff --git a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
index eb4e9ef788983f9d181faca804c058b3027afc72..f0fdf766ab68d90a302647c2586a60ae00da5bff 100644
--- a/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
+++ b/test/porousmediumflow/3pwateroil/implicit/3pwateroilsagdspatialparams.hh
@@ -54,11 +54,11 @@ SET_PROP(SagdSpatialParams, MaterialLaw)
  private:
     // define the material law which is parameterized by effective
     // saturations
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedParkerVanGen3P<Scalar> EffectiveLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffectiveLaw = RegularizedParkerVanGen3P<Scalar>;
  public:
     // define the material law parameterized by absolute saturations
-    typedef EffToAbsLaw<EffectiveLaw> type;
+    using type = EffToAbsLaw<EffectiveLaw>;
 };
 }
 
@@ -70,39 +70,39 @@ SET_PROP(SagdSpatialParams, MaterialLaw)
 template<class TypeTag>
 class SagdSpatialParams : public FVSpatialParams<TypeTag>
 {
-    typedef FVSpatialParams<TypeTag> ParentType;
+    using ParentType = FVSpatialParams<TypeTag>;
 
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename Grid::ctype CoordScalar;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using CoordScalar = typename Grid::ctype;
     enum {
         dim=GridView::dimension,
         dimWorld=GridView::dimensionworld
     };
 
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         wPhaseIdx = Indices::wPhaseIdx,
         nPhaseIdx = Indices::nPhaseIdx
     };
 
-    typedef Dune::FieldVector<CoordScalar,dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<CoordScalar,dimWorld> DimVector;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
+    using DimVector = Dune::FieldVector<CoordScalar, dimWorld>;
 
 
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GridView::template Codim<0>::Entity Element;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using Element = typename GridView::template Codim<0>::Entity;
 
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     /*!
      * \brief The constructor
diff --git a/test/porousmediumflow/3pwateroil/implicit/test_box3pwateroil.cc b/test/porousmediumflow/3pwateroil/implicit/test_box3pwateroil.cc
index b56e37131eb7666907f366a853935fa93997ae4c..9d42852d6a2d3d20d6e3291231d7212f3879f435 100644
--- a/test/porousmediumflow/3pwateroil/implicit/test_box3pwateroil.cc
+++ b/test/porousmediumflow/3pwateroil/implicit/test_box3pwateroil.cc
@@ -55,7 +55,7 @@ void usage(const char *progName, const std::string &errorMsg)
 int main(int argc, char** argv)
 {
 
-    typedef TTAG(ThreePWaterOilSagdBoxProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(ThreePWaterOilSagdBoxProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 
 
diff --git a/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh b/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh
index d849f1918f3002409afa384bca037d7aea8152dd..f152735cda61fb00c773f99e4a840ae9c2632c9f 100644
--- a/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh
+++ b/test/porousmediumflow/co2/implicit/heterogeneousspatialparameters.hh
@@ -57,7 +57,7 @@ private:
     using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
     // define the material law parameterized by absolute saturations
-    typedef EffToAbsLaw<RegularizedBrooksCorey<Scalar>> type;
+    using type = EffToAbsLaw<RegularizedBrooksCorey<Scalar>>;
 };
 }
 
diff --git a/test/porousmediumflow/mpnc/implicit/combustionproblem1c.hh b/test/porousmediumflow/mpnc/implicit/combustionproblem1c.hh
index 011d4df4e26f98094e34212570f803a288a8b619..48ec9e31a3745b5f58f2ecb6ce2ecd6e7b031105 100644
--- a/test/porousmediumflow/mpnc/implicit/combustionproblem1c.hh
+++ b/test/porousmediumflow/mpnc/implicit/combustionproblem1c.hh
@@ -82,9 +82,9 @@ SET_TYPE_PROP(CombustionProblemOneComponent,
 // Set fluid configuration
 SET_PROP(CombustionProblemOneComponent, FluidSystem){
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
-    typedef FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*useComplexRelations=*/false> type;
+    using type = FluidSystems::PureWaterSimpleFluidSystem<Scalar, /*useComplexRelations=*/false>;
 };
 
 // Set the newton controller
@@ -134,11 +134,11 @@ SET_BOOL_PROP(CombustionProblemOneComponent, EnableKinetic, false);
 SET_PROP(CombustionProblemOneComponent, FluidState)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 public:
-    typedef CompositionalFluidState<Scalar, FluidSystem> type;
+    using type = CompositionalFluidState<Scalar, FluidSystem>;
 };
 
 SET_BOOL_PROP(CombustionProblemOneComponent, UseMaxwellDiffusion, false);
@@ -165,22 +165,22 @@ SET_BOOL_PROP(CombustionProblemOneComponent, VelocityAveragingInModel, true);
 template<class TypeTag>
 class CombustionProblemOneComponent: public ImplicitPorousMediaProblem<TypeTag> {
 
-    typedef CombustionProblemOneComponent<TypeTag> ThisType;
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices)Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using ThisType = CombustionProblemOneComponent<TypeTag>;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     /*!
      * \brief The fluid state which is used by the volume variables to
      *        store the thermodynamic state. This should be chosen
      *        appropriately for the model ((non-)isothermal, equilibrium, ...).
      *        This can be done in the problem.
      */
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
     enum {dim = GridView::dimension}; // Grid and world dimension
     enum {dimWorld = GridView::dimensionworld};
     enum {numPhases = GET_PROP_VALUE(TypeTag, NumPhases)};
@@ -210,26 +210,26 @@ class CombustionProblemOneComponent: public ImplicitPorousMediaProblem<TypeTag>
         leastWettingFirst = MpNcPressureFormulation::leastWettingFirst
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes) ElementBoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dim> DimVector;
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
-
-    typedef std::vector<Dune::FieldVector<Scalar, 1> > ScalarBuffer;
-    typedef std::array<ScalarBuffer, numPhases> PhaseBuffer;
-    typedef Dune::FieldVector<Scalar, dimWorld> VelocityVector;
-    typedef Dune::BlockVector<VelocityVector> VelocityField;
-    typedef std::array<VelocityField, numPhases> PhaseVelocityField;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+    using ElementBoundaryTypes = typename GET_PROP_TYPE(TypeTag, ElementBoundaryTypes);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+
+    using DimVector = Dune::FieldVector<typename GridView::Grid::ctype, dim>;
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
+
+    using ScalarBuffer = std::vector<Dune::FieldVector<Scalar, 1>>;
+    using PhaseBuffer = std::array<ScalarBuffer, numPhases>;
+    using VelocityVector = Dune::FieldVector<Scalar, dimWorld>;
+    using VelocityField = Dune::BlockVector<VelocityVector>;
+    using PhaseVelocityField = std::array<VelocityField, numPhases>;
 
 public:
     CombustionProblemOneComponent(TimeManager &timeManager,
@@ -670,7 +670,7 @@ private:
             }
 
             // obtain fugacities
-            typedef ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
+            using ComputeFromReferencePhase = ComputeFromReferencePhase<Scalar, FluidSystem>;
             ParameterCache paramCache;
             ComputeFromReferencePhase::solve(fluidState,
                     paramCache,
diff --git a/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh b/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh
index 81f5af84e68d89f2aeb247d0d065c3f3c9413819..5dcb62a0c9e1f282b81c98a6a9207de125fb4e93 100644
--- a/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh
+++ b/test/porousmediumflow/mpnc/implicit/combustionspatialparams.hh
@@ -58,17 +58,17 @@ SET_TYPE_PROP(CombustionSpatialParams, SpatialParams, CombustionSpatialParams<Ty
 SET_PROP(CombustionSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     enum {wPhaseIdx   = FluidSystem::wPhaseIdx};
 
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 
 //    actually other people call this Leverett
-    typedef HeatPipeLaw<Scalar> EffectiveLaw;
+    using EffectiveLaw = HeatPipeLaw<Scalar>;
 
-    typedef EffToAbsLaw<EffectiveLaw>       TwoPMaterialLaw;
+    using TwoPMaterialLaw = EffToAbsLaw<EffectiveLaw>;
     public:
-        typedef TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> type;
+        using type = TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
 };
 
 
@@ -81,10 +81,10 @@ private:
 template<class TypeTag>
 class CombustionSpatialParams : public FVSpatialParams<TypeTag>
 {
-    typedef FVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using ParentType = FVSpatialParams<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     enum {dim=GridView::dimension };
     enum {dimWorld=GridView::dimensionworld};
@@ -95,19 +95,19 @@ class CombustionSpatialParams : public FVSpatialParams<TypeTag>
     enum {numPhases = GET_PROP_VALUE(TypeTag, NumPhases)};
     enum {enableEnergy          = GET_PROP_VALUE(TypeTag, EnableEnergy)};
 
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar,dimWorld> DimVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using DimVector = Dune::FieldVector<Scalar, dimWorld>;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     CombustionSpatialParams(const GridView &gv)
         : ParentType(gv)
diff --git a/test/porousmediumflow/mpnc/implicit/evaporationatmosphereproblem.hh b/test/porousmediumflow/mpnc/implicit/evaporationatmosphereproblem.hh
index 09cb5d7157900fbda6c56d0566a72ca421279636..9a1820efa651879686c2659e2bd075b8813ae3b2 100644
--- a/test/porousmediumflow/mpnc/implicit/evaporationatmosphereproblem.hh
+++ b/test/porousmediumflow/mpnc/implicit/evaporationatmosphereproblem.hh
@@ -86,8 +86,8 @@ SET_TYPE_PROP(EvaporationAtmosphereProblem,
 // Set fluid configuration
 SET_PROP(EvaporationAtmosphereProblem, FluidSystem)
 {
-private: typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-public:  typedef FluidSystems::H2ON2Kinetic<Scalar, /*useComplexRelations=*/false> type;
+private: using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+public:  using type = FluidSystems::H2ON2Kinetic<Scalar, /*useComplexRelations=*/false>;
 };
 
 // Set the newton controller
@@ -130,12 +130,12 @@ SET_BOOL_PROP(EvaporationAtmosphereProblem, EnableKinetic, true);
  *        appropriately for the model ((non-)isothermal, equilibrium, ...).
  */
 SET_PROP(EvaporationAtmosphereProblem, FluidState){
-    private:    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    private:    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-//    public: typedef NonEquilibriumEnergyFluidState<Scalar, FluidSystem> type;
-//    public: typedef NonEquilibriumMassFluidState<Scalar, FluidSystem> type;
-    public: typedef NonEquilibriumFluidState<Scalar, FluidSystem> type;
-//    public: typedef CompositionalFluidState<Scalar, FluidSystem> type;
+    private:    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    private:    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+//    public: using type = NonEquilibriumEnergyFluidState<Scalar, FluidSystem>;
+//    public: using type = NonEquilibriumMassFluidState<Scalar, FluidSystem>;
+    public: using type = NonEquilibriumFluidState<Scalar, FluidSystem>;
+//    public: using type = CompositionalFluidState<Scalar, FluidSystem>;
 };
 
 SET_BOOL_PROP(EvaporationAtmosphereProblem, UseMaxwellDiffusion, false);
@@ -164,21 +164,21 @@ template <class TypeTag>
 class EvaporationAtmosphereProblem
     : public ImplicitPorousMediaProblem<TypeTag>
 {
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     /*!
      * \brief The fluid state which is used by the volume variables to
      *        store the thermodynamic state. This should be chosen
      *        appropriately for the model ((non-)isothermal, equilibrium, ...).
      *        This can be done in the problem.
      */
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using ParameterCache = typename FluidSystem::ParameterCache;
     enum { dim = GridView::dimension}; // Grid and world dimension
     enum { dimWorld = GridView::dimensionworld};
     enum { numPhases       = GET_PROP_VALUE(TypeTag, NumPhases)};
@@ -206,21 +206,21 @@ class EvaporationAtmosphereProblem
         leastWettingFirst   = MpNcPressureFormulation::leastWettingFirst
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
-
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
-
-    typedef std::vector<Dune::FieldVector<Scalar, 1> >  ScalarBuffer;
-    typedef std::array<ScalarBuffer, numPhases>         PhaseBuffer;
-    typedef Dune::FieldVector<Scalar, dim>              DimVector;
-    typedef Dune::BlockVector<DimVector>           VelocityField;
-    typedef std::array<VelocityField, numPhases>        PhaseVelocityField;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
+
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
+
+    using ScalarBuffer = std::vector<Dune::FieldVector<Scalar, 1>>;
+    using PhaseBuffer = std::array<ScalarBuffer, numPhases>;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using VelocityField = Dune::BlockVector<DimVector>;
+    using PhaseVelocityField = std::array<VelocityField, numPhases>;
 
 public:
     /*!
diff --git a/test/porousmediumflow/mpnc/implicit/evaporationatmospherespatialparams.hh b/test/porousmediumflow/mpnc/implicit/evaporationatmospherespatialparams.hh
index 01ffa9cf8437d6c19037989e29e6811dc551d66c..1e7a5784b983f6f6fe5aaf21205d79ed71dd2d7d 100644
--- a/test/porousmediumflow/mpnc/implicit/evaporationatmospherespatialparams.hh
+++ b/test/porousmediumflow/mpnc/implicit/evaporationatmospherespatialparams.hh
@@ -63,14 +63,14 @@ SET_TYPE_PROP(EvaporationAtmosphereSpatialParams, SpatialParams, EvaporationAtmo
 // Set the material Law
 SET_PROP(EvaporationAtmosphereSpatialParams, MaterialLaw)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     enum {wPhaseIdx   = FluidSystem::wPhaseIdx};
 
 private:
     // define the material law which is parameterized by effective
     // saturations
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
     // select appropriate parametrization
 #define linear      0 // pc(S_w)
 #define RegVG       0 // pc(S_w)
@@ -80,29 +80,29 @@ private:
 
     // define the material law
     #if linear
-        typedef LinearMaterial<Scalar>          EffectiveLaw;
+        using EffectiveLaw = LinearMaterial<Scalar>;
     #endif
 
     #if RegVG
-        typedef RegularizedVanGenuchten<Scalar> EffectiveLaw;
+        using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
     #endif
 
     #if RegBC
-        typedef RegularizedBrooksCorey<Scalar> EffectiveLaw;
+        using EffectiveLaw = RegularizedBrooksCorey<Scalar>;
     #endif
 
     #if RegVGofT
-        typedef RegularizedVanGenuchtenOfTemperature<Scalar> EffectiveLaw;
+        using EffectiveLaw = RegularizedVanGenuchtenOfTemperature<Scalar>;
     #endif
 
     #if VG
-        typedef VanGenuchten<Scalar> EffectiveLaw;
+        using EffectiveLaw = VanGenuchten<Scalar>;
     #endif
 
-    typedef EffToAbsLaw<EffectiveLaw>       TwoPMaterialLaw;
+    using TwoPMaterialLaw = EffToAbsLaw<EffectiveLaw>;
     public:
-//        typedef TwoPOfTAdapter<wPhaseIdx, TwoPMaterialLaw> type; // adapter for incorporating temperature effects on pc-S
-        typedef TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> type;
+//        using type = TwoPOfTAdapter<wPhaseIdx, TwoPMaterialLaw>; // adapter for incorporating temperature effects on pc-S
+        using type = TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
 };
 
 
@@ -110,33 +110,33 @@ private:
 // Set the interfacial area relation: wetting -- non-wetting
 SET_PROP(EvaporationAtmosphereSpatialParams, AwnSurface)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef AwnSurfacePcMaxFct<Scalar>     EffectiveIALaw;
-    //    typedef AwnSurfacePolynomial2ndOrder<Scalar>      EffectiveIALaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using EffectiveIALaw = AwnSurfacePcMaxFct<Scalar>;
+    //    using EffectiveIALaw = AwnSurfacePolynomial2ndOrder<Scalar>;
 public:
-    typedef EffToAbsLawIA<EffectiveIALaw, MaterialLawParams> type;
+    using type = EffToAbsLawIA<EffectiveIALaw, MaterialLawParams>;
 };
 
 
 // Set the interfacial area relation: wetting -- solid
 SET_PROP(EvaporationAtmosphereSpatialParams, AwsSurface)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef AwnSurfacePolynomial2ndOrder<Scalar>  EffectiveIALaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using EffectiveIALaw = AwnSurfacePolynomial2ndOrder<Scalar>;
 public:
-    typedef EffToAbsLawIA<EffectiveIALaw, MaterialLawParams> type;
+    using type = EffToAbsLawIA<EffectiveIALaw, MaterialLawParams>;
 };
 
 // Set the interfacial area relation: non-wetting -- solid
 SET_PROP(EvaporationAtmosphereSpatialParams, AnsSurface)
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef AwnSurfaceExpSwPcTo3<Scalar>      EffectiveIALaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using EffectiveIALaw = AwnSurfaceExpSwPcTo3<Scalar>;
 public:
-    typedef EffToAbsLawIA<EffectiveIALaw, MaterialLawParams> type;
+    using type = EffToAbsLawIA<EffectiveIALaw, MaterialLawParams>;
 };
 
 } // end namespace properties
@@ -147,10 +147,10 @@ public:
 template<class TypeTag>
 class EvaporationAtmosphereSpatialParams : public FVSpatialParams<TypeTag>
 {
-    typedef FVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using ParentType = FVSpatialParams<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     enum {dim=GridView::dimension };
     enum {dimWorld=GridView::dimensionworld};
@@ -161,30 +161,30 @@ class EvaporationAtmosphereSpatialParams : public FVSpatialParams<TypeTag>
     enum { numPhases       = GET_PROP_VALUE(TypeTag, NumPhases)};
     enum { enableEnergy         = GET_PROP_VALUE(TypeTag, EnableEnergy)};
 
-    typedef typename GET_PROP_TYPE(TypeTag, VolumeVariables) VolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluxVariables) FluxVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<Scalar,dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar,dim> LocalPosition;
+    using VolumeVariables = typename GET_PROP_TYPE(TypeTag, VolumeVariables);
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluxVariables = typename GET_PROP_TYPE(TypeTag, FluxVariables);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
+    using LocalPosition = Dune::FieldVector<Scalar, dim>;
 
-    typedef Dune::FieldVector<Scalar,dim> DimVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
+    using DimVector = Dune::FieldVector<Scalar, dim>;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AwnSurface) AwnSurface;
-    typedef typename AwnSurface::Params AwnSurfaceParams;
+    using AwnSurface = typename GET_PROP_TYPE(TypeTag, AwnSurface);
+    using AwnSurfaceParams = typename AwnSurface::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AwsSurface) AwsSurface;
-    typedef typename AwsSurface::Params AwsSurfaceParams;
+    using AwsSurface = typename GET_PROP_TYPE(TypeTag, AwsSurface);
+    using AwsSurfaceParams = typename AwsSurface::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, AnsSurface) AnsSurface;
-    typedef typename AnsSurface::Params AnsSurfaceParams;
+    using AnsSurface = typename GET_PROP_TYPE(TypeTag, AnsSurface);
+    using AnsSurfaceParams = typename AnsSurface::Params;
 
 
     EvaporationAtmosphereSpatialParams(const GridView &gridView)
diff --git a/test/porousmediumflow/mpnc/implicit/forchheimer1pproblem.hh b/test/porousmediumflow/mpnc/implicit/forchheimer1pproblem.hh
index 2ae1eba28d5b912d1fac2c22fcf314475e8df713..e263c8ccc6b67c14d629e632bf6ade3e945f073a 100644
--- a/test/porousmediumflow/mpnc/implicit/forchheimer1pproblem.hh
+++ b/test/porousmediumflow/mpnc/implicit/forchheimer1pproblem.hh
@@ -58,9 +58,9 @@ SET_TYPE_PROP(Forchheimer1pProblem,
 // Set fluid configuration
 SET_PROP(Forchheimer1pProblem, FluidSystem)
 { private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
-    typedef FluidSystems::H2OAir<Scalar, SimpleH2O<Scalar>, /*useComplexRelations=*/false> type;
+    using type = FluidSystems::H2OAir<Scalar, SimpleH2O<Scalar>, /*useComplexRelations=*/false>;
 };
 
 // Enable molecular diffusion of the components?
@@ -110,17 +110,17 @@ template <class TypeTag>
 class Forchheimer1pProblem
     : public ImplicitPorousMediaProblem<TypeTag>
 {
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     // Grid and world dimension
     enum {dim = GridView::dimension};
@@ -135,13 +135,13 @@ class Forchheimer1pProblem
     enum {s0Idx = Indices::s0Idx};
     enum {p0Idx = Indices::p0Idx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
 public:
     /*!
@@ -389,7 +389,7 @@ private:
 
         // make the fluid state consistent with local thermodynamic
         // equilibrium
-        typedef ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
+        using ComputeFromReferencePhase = ComputeFromReferencePhase<Scalar, FluidSystem>;
 
         ParameterCache paramCache;
         ComputeFromReferencePhase::solve(fs,
diff --git a/test/porousmediumflow/mpnc/implicit/forchheimer2pproblem.hh b/test/porousmediumflow/mpnc/implicit/forchheimer2pproblem.hh
index 0b34a6e4c08563b580fd69ead1829ec5e2629384..c87cab30412faa3d07cda305f1abc589edd49a17 100644
--- a/test/porousmediumflow/mpnc/implicit/forchheimer2pproblem.hh
+++ b/test/porousmediumflow/mpnc/implicit/forchheimer2pproblem.hh
@@ -56,9 +56,9 @@ SET_TYPE_PROP(Forchheimer2pProblem,
 // Set fluid configuration
 SET_PROP(Forchheimer2pProblem, FluidSystem)
 { private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
-    typedef FluidSystems::H2ON2<Scalar, /*useComplexRelations=*/false> type;
+    using type = FluidSystems::H2ON2<Scalar, /*useComplexRelations=*/false>;
 };
 
 
@@ -109,17 +109,17 @@ template <class TypeTag>
 class Forchheimer2pProblem
     : public ImplicitPorousMediaProblem<TypeTag>
 {
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     // Grid and world dimension
     enum {dim = GridView::dimension};
@@ -134,13 +134,13 @@ class Forchheimer2pProblem
     enum {s0Idx = Indices::s0Idx};
     enum {p0Idx = Indices::p0Idx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::template Codim<dim>::Entity Vertex;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Vertex = typename GridView::template Codim<dim>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
 
 public:
     /*!
@@ -395,7 +395,7 @@ private:
 
         // make the fluid state consistent with local thermodynamic
         // equilibrium
-        typedef ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
+        using ComputeFromReferencePhase = ComputeFromReferencePhase<Scalar, FluidSystem>;
 
         ParameterCache paramCache;
         ComputeFromReferencePhase::solve(fs,
diff --git a/test/porousmediumflow/mpnc/implicit/forchheimerspatialparams.hh b/test/porousmediumflow/mpnc/implicit/forchheimerspatialparams.hh
index 0f50bdb80d04601bcc580be06f8fe3aad4da5782..f8869ad466a83125fa30ea6ac1129ad1fc79abf6 100644
--- a/test/porousmediumflow/mpnc/implicit/forchheimerspatialparams.hh
+++ b/test/porousmediumflow/mpnc/implicit/forchheimerspatialparams.hh
@@ -53,14 +53,14 @@ SET_TYPE_PROP(ForchheimerSpatialParams, SpatialParams, ForchheimerSpatialParams<
 SET_PROP(ForchheimerSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     enum {wPhaseIdx = FluidSystem::wPhaseIdx};
     // define the material law
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedLinearMaterial<Scalar> EffMaterialLaw;
-    typedef EffToAbsLaw<EffMaterialLaw> TwoPMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffMaterialLaw = RegularizedLinearMaterial<Scalar>;
+    using TwoPMaterialLaw = EffToAbsLaw<EffMaterialLaw>;
 public:
-    typedef TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> type;
+    using type = TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
 };
 }
 
@@ -73,24 +73,24 @@ public:
 template<class TypeTag>
 class ForchheimerSpatialParams : public FVSpatialParams<TypeTag>
 {
-    typedef FVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = FVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using CoordScalar = typename Grid::ctype;
 
     enum {dimWorld=GridView::dimensionworld};
     enum {wPhaseIdx = FluidSystem::wPhaseIdx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<CoordScalar,dimWorld> GlobalPosition;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using GlobalPosition = Dune::FieldVector<CoordScalar, dimWorld>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     ForchheimerSpatialParams(const GridView &gridView)
         : ParentType(gridView)
diff --git a/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh b/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh
index 53f8b0a556e8360eb538c412f3d71f8a3c68ca7c..921f8925e95fb39c4cef9e18d3bbda0e20eb8e91 100644
--- a/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh
+++ b/test/porousmediumflow/mpnc/implicit/obstacleproblem.hh
@@ -59,9 +59,9 @@ SET_TYPE_PROP(ObstacleProblem,
 // Set fluid configuration
 SET_PROP(ObstacleProblem, FluidSystem)
 { private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
 public:
-    typedef FluidSystems::H2ON2<Scalar, /*useComplexRelations=*/false> type;
+    using type = FluidSystems::H2ON2<Scalar, /*useComplexRelations=*/false>;
 };
 
 // Enable smooth upwinding?
@@ -113,17 +113,17 @@ template <class TypeTag>
 class ObstacleProblem
     : public ImplicitPorousMediaProblem<TypeTag>
 {
-    typedef ImplicitPorousMediaProblem<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, PrimaryVariables) PrimaryVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, BoundaryTypes) BoundaryTypes;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename FluidSystem::ParameterCache ParameterCache;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidState) FluidState;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params MaterialLawParams;
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using ParentType = ImplicitPorousMediaProblem<TypeTag>;
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using PrimaryVariables = typename GET_PROP_TYPE(TypeTag, PrimaryVariables);
+    using BoundaryTypes = typename GET_PROP_TYPE(TypeTag, BoundaryTypes);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using ParameterCache = typename FluidSystem::ParameterCache;
+    using FluidState = typename GET_PROP_TYPE(TypeTag, FluidState);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename GET_PROP_TYPE(TypeTag, MaterialLaw)::Params;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
 
     // world dimension
     enum {dimWorld = GridView::dimensionworld};
@@ -137,12 +137,12 @@ class ObstacleProblem
     enum {s0Idx = Indices::s0Idx};
     enum {p0Idx = Indices::p0Idx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef Dune::FieldVector<typename GridView::Grid::ctype, dimWorld> GlobalPosition;
-    typedef Dune::FieldVector<Scalar, numPhases> PhaseVector;
-    typedef typename GET_PROP_TYPE(TypeTag, TimeManager) TimeManager;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using GlobalPosition = Dune::FieldVector<typename GridView::Grid::ctype, dimWorld>;
+    using PhaseVector = Dune::FieldVector<Scalar, numPhases>;
+    using TimeManager = typename GET_PROP_TYPE(TypeTag, TimeManager);
     enum { isBox = GET_PROP_VALUE(TypeTag, ImplicitIsBox) };
 
 public:
@@ -399,7 +399,7 @@ private:
 
         // make the fluid state consistent with local thermodynamic
         // equilibrium
-        typedef ComputeFromReferencePhase<Scalar, FluidSystem> ComputeFromReferencePhase;
+        using ComputeFromReferencePhase = ComputeFromReferencePhase<Scalar, FluidSystem>;
 
         ParameterCache paramCache;
         ComputeFromReferencePhase::solve(fs,
diff --git a/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh b/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh
index da0fe32e0a8384ab3262edad47db276d6e9318e6..e9565a2c89e4d92089ddbbd24683faa8905a3735 100644
--- a/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh
+++ b/test/porousmediumflow/mpnc/implicit/obstaclespatialparams.hh
@@ -52,14 +52,14 @@ SET_TYPE_PROP(ObstacleSpatialParams, SpatialParams, ObstacleSpatialParams<TypeTa
 SET_PROP(ObstacleSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
     enum {wPhaseIdx = FluidSystem::wPhaseIdx};
     // define the material law
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedLinearMaterial<Scalar> EffMaterialLaw;
-    typedef EffToAbsLaw<EffMaterialLaw> TwoPMaterialLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffMaterialLaw = RegularizedLinearMaterial<Scalar>;
+    using TwoPMaterialLaw = EffToAbsLaw<EffMaterialLaw>;
 public:
-    typedef TwoPAdapter<wPhaseIdx, TwoPMaterialLaw> type;
+    using type = TwoPAdapter<wPhaseIdx, TwoPMaterialLaw>;
 };
 }
 
@@ -72,24 +72,24 @@ public:
 template<class TypeTag>
 class ObstacleSpatialParams : public FVSpatialParams<TypeTag>
 {
-    typedef FVSpatialParams<TypeTag> ParentType;
-    typedef typename GET_PROP_TYPE(TypeTag, Grid) Grid;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView) GridView;
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector) SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry) FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem) FluidSystem;
-    typedef typename Grid::ctype CoordScalar;
+    using ParentType = FVSpatialParams<TypeTag>;
+    using Grid = typename GET_PROP_TYPE(TypeTag, Grid);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
+    using CoordScalar = typename Grid::ctype;
 
     enum {dimWorld=GridView::dimensionworld};
     enum {wPhaseIdx = FluidSystem::wPhaseIdx};
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef Dune::FieldVector<CoordScalar,dimWorld> DimWorldVector;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using DimWorldVector = Dune::FieldVector<CoordScalar, dimWorld>;
 
 public:
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw) MaterialLaw;
-    typedef typename MaterialLaw::Params MaterialLawParams;
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using MaterialLawParams = typename MaterialLaw::Params;
 
     ObstacleSpatialParams(const GridView &gridView)
         : ParentType(gridView)
diff --git a/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh b/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh
index 76e972aca3ca52e97b0fc5a81fea5e4710342a4d..0b112a69132db2be63f18ddafeb9408e4b79de2e 100644
--- a/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh
+++ b/test/porousmediumflow/mpnc/implicit/plotoverline2d.hh
@@ -59,19 +59,19 @@ namespace Properties
 template<class TypeTag>
 class PlotOverLine2D
 {
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar)               Scalar;
-    typedef typename GET_PROP_TYPE(TypeTag, Problem)              Problem;
-    typedef typename GET_PROP_TYPE(TypeTag, GridView)             GridView;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
+    using GridView = typename GET_PROP_TYPE(TypeTag, GridView);
 
-    typedef typename GET_PROP_TYPE(TypeTag, FVElementGeometry)    FVElementGeometry;
-    typedef typename GET_PROP_TYPE(TypeTag, DofMapper)            DofMapper;
-    typedef typename GET_PROP_TYPE(TypeTag, ElementSolutionVector) ElementSolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, SolutionVector)       SolutionVector;
-    typedef typename GET_PROP_TYPE(TypeTag, MaterialLaw)          MaterialLaw;
-    typedef typename MaterialLaw::Params                          aterialLawParams;
+    using FVElementGeometry = typename GET_PROP_TYPE(TypeTag, FVElementGeometry);
+    using DofMapper = typename GET_PROP_TYPE(TypeTag, DofMapper);
+    using ElementSolutionVector = typename GET_PROP_TYPE(TypeTag, ElementSolutionVector);
+    using SolutionVector = typename GET_PROP_TYPE(TypeTag, SolutionVector);
+    using MaterialLaw = typename GET_PROP_TYPE(TypeTag, MaterialLaw);
+    using aterialLawParams = typename MaterialLaw::Params;
 
-    typedef typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables) ElementVolumeVariables;
-    typedef typename GET_PROP_TYPE(TypeTag, FluidSystem)          FluidSystem;
+    using ElementVolumeVariables = typename GET_PROP_TYPE(TypeTag, ElementVolumeVariables);
+    using FluidSystem = typename GET_PROP_TYPE(TypeTag, FluidSystem);
 
     enum {
         wPhaseIdx = FluidSystem::wPhaseIdx,
@@ -85,7 +85,7 @@ class PlotOverLine2D
         dimWorld    = GridView::dimensionworld,
     };
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     /*!
diff --git a/test/porousmediumflow/mpnc/implicit/test_boxmpnc.cc b/test/porousmediumflow/mpnc/implicit/test_boxmpnc.cc
index f8a0d90a40c611c4ceb4d2ff963c5d5a5a4ffd7f..64f79caa0821d3a117329d30f19c336272f36e46 100644
--- a/test/porousmediumflow/mpnc/implicit/test_boxmpnc.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_boxmpnc.cc
@@ -54,6 +54,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(ObstacleBoxProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(ObstacleBoxProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/mpnc/implicit/test_boxmpnckinetic.cc b/test/porousmediumflow/mpnc/implicit/test_boxmpnckinetic.cc
index deee9d365e9acbbad0ff926a3af776a717e1d529..11a6ecd5e0b35716bae6816810f5475cd3d62e5a 100644
--- a/test/porousmediumflow/mpnc/implicit/test_boxmpnckinetic.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_boxmpnckinetic.cc
@@ -53,6 +53,6 @@ void printUsage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(EvaporationAtmosphereProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(EvaporationAtmosphereProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, printUsage);
 }
diff --git a/test/porousmediumflow/mpnc/implicit/test_boxmpncthermalnonequil.cc b/test/porousmediumflow/mpnc/implicit/test_boxmpncthermalnonequil.cc
index 4b2e7387276928ce9d91eb90c27727e61f7b8c33..5f228fcc6261edc76811302f3a9f65611560c481 100644
--- a/test/porousmediumflow/mpnc/implicit/test_boxmpncthermalnonequil.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_boxmpncthermalnonequil.cc
@@ -55,7 +55,7 @@ void usage(const char *progName, const std::string &errorMsg)
 int main(int argc, char** argv)
 {
 #if HAVE_SUPERLU
-  typedef TTAG(CombustionProblemOneComponent) ProblemTypeTag;
+  using ProblemTypeTag = TTAG(CombustionProblemOneComponent);
   return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 #else
 #warning CombustionProblemOneComponent skipped, needs SuperLU!
diff --git a/test/porousmediumflow/mpnc/implicit/test_ccmpnc.cc b/test/porousmediumflow/mpnc/implicit/test_ccmpnc.cc
index c19afeb8c582d9d9a452e5b8404d85767df6f157..6c0340f8d94ce47344970f49bdf53399d702ce41 100644
--- a/test/porousmediumflow/mpnc/implicit/test_ccmpnc.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_ccmpnc.cc
@@ -54,6 +54,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(ObstacleCCProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(ObstacleCCProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/mpnc/implicit/test_forchheimer1p.cc b/test/porousmediumflow/mpnc/implicit/test_forchheimer1p.cc
index e8ef2fd92d53d376fa9c107835ab2912462b6b5e..551914055ed317d92a6800c9266650f047855dc5 100644
--- a/test/porousmediumflow/mpnc/implicit/test_forchheimer1p.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_forchheimer1p.cc
@@ -54,6 +54,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(Forchheimer1pProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(Forchheimer1pProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/mpnc/implicit/test_forchheimer2p.cc b/test/porousmediumflow/mpnc/implicit/test_forchheimer2p.cc
index b1f9b6552c1fbf12c1fbb864c5a41bcc60d28c8c..51df73295c27c306e0b93bc2c775d0c8610cc31b 100644
--- a/test/porousmediumflow/mpnc/implicit/test_forchheimer2p.cc
+++ b/test/porousmediumflow/mpnc/implicit/test_forchheimer2p.cc
@@ -54,6 +54,6 @@ void usage(const char *progName, const std::string &errorMsg)
 
 int main(int argc, char** argv)
 {
-    typedef TTAG(Forchheimer2pProblem) ProblemTypeTag;
+    using ProblemTypeTag = TTAG(Forchheimer2pProblem);
     return Dumux::start<ProblemTypeTag>(argc, argv, usage);
 }
diff --git a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
index 2e2c179fe6315b79b330876b7d4ad34e75ae8566..7cf64bcc94ddfd95c454e24e9cabde42cd578bc8 100644
--- a/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsanalyticalspatialparams.hh
@@ -52,10 +52,10 @@ SET_TYPE_PROP(RichardsAnalyticalSpatialParams, SpatialParams, RichardsAnalytical
 SET_PROP(RichardsAnalyticalSpatialParams, MaterialLaw)
 {
 private:
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef LinearMaterial<Scalar> EffectiveLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffectiveLaw = LinearMaterial<Scalar>;
 public:
-    typedef EffToAbsLaw<EffectiveLaw> type;
+    using type = EffToAbsLaw<EffectiveLaw>;
 };
 }
 
diff --git a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
index b47812c3ede2f5ec89084eb51158053eec4f7bac..9455596e89abdf2c93b847f40e044e380ae98d7e 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconductionproblem.hh
@@ -106,7 +106,7 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag>
     using IapwsH2O = H2O<Scalar>;
 
     // copy some indices for convenience
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         // world dimension
         dimWorld = GridView::dimensionworld
@@ -123,10 +123,10 @@ class RichardsNIConductionProblem :public PorousMediumFlowProblem<TypeTag>
         energyEqIdx = Indices::energyEqIdx
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     RichardsNIConductionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
diff --git a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
index 5bcd29111c1c23991e6ae38f6b15635079ce6943..be2eea3543448068bab47d43256b7ba17579817d 100644
--- a/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
+++ b/test/porousmediumflow/richards/implicit/richardsniconvectionproblem.hh
@@ -111,7 +111,7 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
     using IapwsH2O = H2O<Scalar>;
 
     // copy some indices for convenience
-    typedef typename GET_PROP_TYPE(TypeTag, Indices) Indices;
+    using Indices = typename GET_PROP_TYPE(TypeTag, Indices);
     enum {
         // world dimension
         dimWorld = GridView::dimensionworld
@@ -128,10 +128,10 @@ class RichardsNIConvectionProblem : public PorousMediumFlowProblem<TypeTag>
         energyEqIdx = Indices::energyEqIdx
     };
 
-    typedef typename GridView::template Codim<0>::Entity Element;
-    typedef typename GridView::Intersection Intersection;
+    using Element = typename GridView::template Codim<0>::Entity;
+    using Intersection = typename GridView::Intersection;
 
-    typedef Dune::FieldVector<Scalar, dimWorld> GlobalPosition;
+    using GlobalPosition = Dune::FieldVector<Scalar, dimWorld>;
 
 public:
     RichardsNIConvectionProblem(std::shared_ptr<const FVGridGeometry> fvGridGeometry)
diff --git a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
index fef5226895fd219b1497692074b0be79d188bda8..62fc1accf533a59b4287f8b568bec3ecacdd3b23 100644
--- a/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
+++ b/test/porousmediumflow/richards/implicit/richardsnispatialparams.hh
@@ -58,11 +58,11 @@ SET_PROP(RichardsNISpatialParams, MaterialLaw)
 private:
     // define the material law which is parameterized by effective
     // saturations
-    typedef typename GET_PROP_TYPE(TypeTag, Scalar) Scalar;
-    typedef RegularizedVanGenuchten<Scalar> EffectiveLaw;
+    using Scalar = typename GET_PROP_TYPE(TypeTag, Scalar);
+    using EffectiveLaw = RegularizedVanGenuchten<Scalar>;
 public:
     // define the material law parameterized by absolute saturations
-    typedef EffToAbsLaw<EffectiveLaw> type;
+    using type = EffToAbsLaw<EffectiveLaw>;
 };
 }
 
@@ -87,7 +87,7 @@ class RichardsNISpatialParams : public FVSpatialParams<TypeTag>
     using CoordScalar = typename Grid::ctype;
     using GlobalPosition = Dune::FieldVector<CoordScalar,dimWorld>;
 
-    //typedef LinearMaterial<Scalar> EffMaterialLaw;
+    //using EffMaterialLaw = LinearMaterial<Scalar>;
 public:
         // export permeability type
     using PermeabilityType = Scalar;