diff --git a/examples/cahn_hilliard.cc b/examples/cahn_hilliard.cc
index ceccd5a9a12c990c2870816034c02e0845606bf0..9f68a576a434bfa2d74fe927d4031c46803af96f 100644
--- a/examples/cahn_hilliard.cc
+++ b/examples/cahn_hilliard.cc
@@ -9,7 +9,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::AlbertaGrid<GRIDDIM, WORLDDIM>;
-using Param = LagrangeBasis<typename Grid::LeafGridView, 1, 1>;
+using Param = LagrangeBasis<Grid, 1, 1>;
 
 int main(int argc, char** argv)
 {
diff --git a/examples/navier_stokes.cc b/examples/navier_stokes.cc
index ebb8fef72bb06a49cc2088cc5a595b92a90f5625..4735e5f3fcbb2b495341be394463c56677db9ad6 100644
--- a/examples/navier_stokes.cc
+++ b/examples/navier_stokes.cc
@@ -8,7 +8,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::YaspGrid<2>;
-using Basis = TaylorHoodBasis<Grid::LeafGridView>;
+using Basis = TaylorHoodBasis<Grid>;
 
 int main(int argc, char** argv)
 {
diff --git a/examples/neumann.cc b/examples/neumann.cc
index c94947b8473e2ce3b017220373d3d270bd62db91..eb423465080163ec6c75a3567c55c6ff40e78680 100644
--- a/examples/neumann.cc
+++ b/examples/neumann.cc
@@ -25,7 +25,7 @@ void run(Grid& grid)
 {
   grid.globalRefine(Grid::dimension == 2 ? 4 : 2);
 
-  using Traits = LagrangeBasis<typename Grid::LeafGridView, 2>;
+  using Traits = LagrangeBasis<Grid, 2>;
   ProblemStat<Traits> prob("ellipt", grid);
   prob.initialize(INIT_ALL);
   prob.boundaryManager().setBoxBoundary({1,2,2,1});
diff --git a/examples/periodic.cc b/examples/periodic.cc
index d1293153a128418645064745f463a03f3eb7dc72..2e61afb4a8e16c258d6c6b906342bb6a670fa4cf 100644
--- a/examples/periodic.cc
+++ b/examples/periodic.cc
@@ -54,7 +54,7 @@ void print(Grid const& grid)
 template <class Grid>
 void run(Grid& grid)
 {
-  using Traits = LagrangeBasis<typename Grid::LeafGridView, 1>;
+  using Traits = LagrangeBasis<Grid, 1>;
 
   ProblemStat<Traits> prob("ellipt", grid);
   prob.initialize(INIT_ALL);
diff --git a/examples/stokes0.cc b/examples/stokes0.cc
index 6cb7168d2d3c0481843a1f8e831b410789b51ce2..6c0bd639e7cd8be16ee7a07ed584e35f54e76dcd 100644
--- a/examples/stokes0.cc
+++ b/examples/stokes0.cc
@@ -5,7 +5,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::YaspGrid<2>;
-using StokesParam = TaylorHoodBasis<Grid::LeafGridView>;
+using StokesParam = TaylorHoodBasis<Grid>;
 using StokesProblem = ProblemStat<StokesParam>;
 
 int main(int argc, char** argv)
diff --git a/examples/stokes1.cc b/examples/stokes1.cc
index 2755a9f571d3754eb555800dbc558baa169fca5f..13279763961f232d32e8e046cff549ce6cc12689 100644
--- a/examples/stokes1.cc
+++ b/examples/stokes1.cc
@@ -5,7 +5,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::YaspGrid<2>;
-using StokesParam = TaylorHoodBasis<Grid::LeafGridView>;
+using StokesParam = TaylorHoodBasis<Grid>;
 using StokesProblem = ProblemStat<StokesParam>;
 
 int main(int argc, char** argv)
diff --git a/examples/stokes3.cc b/examples/stokes3.cc
index 393a0b25235a49e3c5773c05551ca871c2e5979d..2358e900aa68e8f0e7b3be10275a7ae494f06267 100644
--- a/examples/stokes3.cc
+++ b/examples/stokes3.cc
@@ -6,7 +6,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::YaspGrid<2>;
-using StokesParam = TaylorHoodBasis<Grid::LeafGridView>;
+using StokesParam = TaylorHoodBasis<Grid>;
 using StokesProblem = ProblemStat<StokesParam>;
 
 int main(int argc, char** argv)
diff --git a/examples/vecellipt.cc b/examples/vecellipt.cc
index 09fa7997bbbcbafdb52096206157e774bc2d70ae..ec3d4356f6549f07b89032a30a3727eecc2c8bf7 100644
--- a/examples/vecellipt.cc
+++ b/examples/vecellipt.cc
@@ -10,8 +10,6 @@
 
 using namespace AMDiS;
 
-// 1 component with polynomial degree 1
-//using Grid = Dune::AlbertaGrid<GRIDDIM, WORLDDIM>;
 using ElliptParam   = YaspGridBasis<GRIDDIM, 2,2>;
 using ElliptProblem = ProblemStat<ElliptParam>;
 
diff --git a/src/amdis/ProblemStatTraits.hpp b/src/amdis/ProblemStatTraits.hpp
index 432be6f05bbe6e5bfe1a0e293666bcf3fa094238..0be129b51b7e447dfcc5b3733ed6860783f60ec4 100644
--- a/src/amdis/ProblemStatTraits.hpp
+++ b/src/amdis/ProblemStatTraits.hpp
@@ -64,9 +64,10 @@ namespace AMDiS
   };
 
 
-  template <class GridView, class PreBasisCreator>
+  template <class Grid, class PreBasisCreator>
   struct DefaultBasisCreator
   {
+    using GridView = typename Grid::LeafGridView;
     static auto create(GridView const& gridView)
     {
       using namespace Dune::Functions::BasisFactory;
@@ -78,23 +79,23 @@ namespace AMDiS
 
   /// \brief ProblemStatTraits for a (composite) basis composed of
   /// lagrange bases of different degree.
-  template <class GridView, int... degrees>
+  template <class Grid, int... degrees>
   struct LagrangeBasis
-      : public DefaultBasisCreator<GridView, Impl::LagrangePreBasisCreator<degrees...>>
+      : public DefaultBasisCreator<Grid, Impl::LagrangePreBasisCreator<degrees...>>
   {};
 
   /// \brief Specialization of \ref LagrangeBasis for Grid type
   /// \ref Dune::YaspGrid for a given dimension.
   template <int dim, int... degrees>
   struct YaspGridBasis
-      : public LagrangeBasis<typename Dune::YaspGrid<dim>::LeafGridView, degrees...>
+      : public LagrangeBasis<Dune::YaspGrid<dim>, degrees...>
   {};
 
   /// \brief ProblemStatTraits of Taylor-Hood basis of lagrange-type
   /// with pressure degree k
-  template <class GridView, int k = 1>
+  template <class Grid, int k = 1>
   struct TaylorHoodBasis
-      : public DefaultBasisCreator<GridView, Impl::TaylorHoodPreBasisCreator<GridView::dimensionworld,k>>
+      : public DefaultBasisCreator<Grid, Impl::TaylorHoodPreBasisCreator<Grid::dimensionworld,k>>
   {};
 
 } // end namespace AMDiS
diff --git a/test/DataTransferTest.hpp b/test/DataTransferTest.hpp
index 11f0e3011bf5cf39712ecb513660bf1c32c825da..d2478feb52b31f002ac0c38816c6e5f641315821 100644
--- a/test/DataTransferTest.hpp
+++ b/test/DataTransferTest.hpp
@@ -159,8 +159,8 @@ bool refine_test(Fcts<BasisCreator> const& funcs, bool simplex = true)
 }
 
 template <class Grid>
-  using Lagrange3 = LagrangeBasis<typename Grid::LeafGridView, 3>;
+  using Lagrange3 = LagrangeBasis<Grid, 3>;
 template <class Grid>
-  using TaylorHood = TaylorHoodBasis<typename Grid::LeafGridView>;
+  using TaylorHood = TaylorHoodBasis<Grid>;
 
   constexpr double pi = 3.141592653589793238463;
diff --git a/test/MarkerTest.cpp b/test/MarkerTest.cpp
index 18968a7b0f5333200dd00a8accdf17a63bc0ffc5..8448ef9cf4b9b4ab58c1d7d89357eddfd50ed6c3 100644
--- a/test/MarkerTest.cpp
+++ b/test/MarkerTest.cpp
@@ -8,7 +8,7 @@ using namespace AMDiS;
 static const int d = 2; // problem dimension
 
 using Grid  = Dune::UGGrid<d>;
-using Basis = LagrangeBasis<Grid::LeafGridView, 1>;
+using Basis = LagrangeBasis<Grid, 1>;
 using Problem = ProblemStat<Basis>;
 using DomainType = typename Dune::FieldVector<double,d>;
 
diff --git a/test/OperatorsTest.cpp b/test/OperatorsTest.cpp
index 1568cec3b7cde8149755595f7d8644b79e38b0b5..b52fb9728e28af961a986034162dff6d5486d9ce 100644
--- a/test/OperatorsTest.cpp
+++ b/test/OperatorsTest.cpp
@@ -10,7 +10,7 @@
 using namespace AMDiS;
 
 using Grid = Dune::YaspGrid<2>;
-using Param   = TaylorHoodBasis<typename Grid::LeafGridView>;
+using Param   = TaylorHoodBasis<Grid>;
 using Problem = ProblemStat<Param>;
 
 int main(int argc, char** argv)