diff --git a/dune/fufem/test/adolctest.cc b/dune/fufem/test/adolctest.cc
index 7d6caa46a7fe428f21e5bb06b57515d68578f6fb..0738a22a0d7042240ee8af424bda670d40c9048f 100644
--- a/dune/fufem/test/adolctest.cc
+++ b/dune/fufem/test/adolctest.cc
@@ -17,7 +17,6 @@
 #include <dune/fufem/assemblers/localassemblers/adolclocalenergy.hh>
 #include <dune/fufem/assemblers/localassemblers/adolclinearizationassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/adolchessianassembler.hh>
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
 #include <dune/fufem/functions/basisgridfunction.hh>
 #include <dune/fufem/assemblers/functionalassembler.hh>
 #include <dune/fufem/assemblers/operatorassembler.hh>
@@ -27,6 +26,8 @@
 #include <dune/fufem/symmetrictensor.hh>
 #include <dune/fufem/makesphere.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
 
 //! Local energy for a geometric exact St. Venant--Kirchhoff material
 template <class GridType, class LocalFiniteElement>
@@ -171,7 +172,7 @@ int main (int argc, char *argv[])
     typedef GridType::LeafGridView GridView;
     GridView gridView = grid->leafGridView();
 
-    typedef P1NodalBasis<GridView> FEBasis;
+    typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<GridView>> FEBasis;
     FEBasis feBasis(gridView);
 
     // //////////////////////////
diff --git a/dune/fufem/test/basisgridfunctiontest.cc b/dune/fufem/test/basisgridfunctiontest.cc
index 8d8f38594d1d00936ebba0b322d54c856100497d..57f5dd9ecbb0f72fa4dd40a457f4c6997c3f779b 100644
--- a/dune/fufem/test/basisgridfunctiontest.cc
+++ b/dune/fufem/test/basisgridfunctiontest.cc
@@ -9,12 +9,14 @@
 #include <dune/common/fmatrix.hh>
 #include <dune/istl/bvector.hh>
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
 #include <dune/fufem/functionspacebases/conformingbasis.hh>
 #include <dune/fufem/functions/basisgridfunction.hh>
 #include <dune/fufem/functions/analyticgridfunction.hh>
 #include <dune/fufem/functiontools/basisinterpolator.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 
@@ -61,7 +63,7 @@ struct BasisGridFunctionTestSuite
 
         // Test with a P1 basis
         {
-            typedef P1NodalBasis<GridView> P1Basis;
+            typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<GridView>> P1Basis;
             typedef ConformingBasis<P1Basis> ConformingP1Basis;
 
             P1Basis p1Basis(gridView);
diff --git a/dune/fufem/test/basisinterpolatortest.cc b/dune/fufem/test/basisinterpolatortest.cc
index 67ce20eb701bab4495726c694f40a412ab45fb2b..521f64809a655501e04968a30eceeb00d57032a9 100644
--- a/dune/fufem/test/basisinterpolatortest.cc
+++ b/dune/fufem/test/basisinterpolatortest.cc
@@ -4,7 +4,10 @@
 
 #include <dune/fufem/functions/basisgridfunction.hh>
 #include <dune/fufem/functiontools/basisinterpolator.hh>
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
+
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 
@@ -57,7 +60,7 @@ struct Suite
         RT y0;
         f.evaluate(x0, y0);
 
-        P1NodalBasis<typename GridType::LeafGridView> basis(grid.leafGridView());
+        DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> basis(grid.leafGridView());
         Functions::interpolate(basis, v, f);
 
         bool passed = (v.size() == basis.size());
diff --git a/dune/fufem/test/coarsegridfunctionwrappertest.cc b/dune/fufem/test/coarsegridfunctionwrappertest.cc
index 001424c38da203f38629f7013ae0746d9e7df2a7..b7f76fd2917fd9890526fa2686741b4f41d1b1f0 100644
--- a/dune/fufem/test/coarsegridfunctionwrappertest.cc
+++ b/dune/fufem/test/coarsegridfunctionwrappertest.cc
@@ -6,7 +6,8 @@
 #include <dune/fufem/functions/coarsegridfunctionwrapper.hh>
 #include <dune/fufem/functiontools/basisinterpolator.hh>
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
 
 #include "common.hh"
 
@@ -41,11 +42,11 @@ struct CoarseGridFunctionWrapperTestSuite
         typedef typename Dune::BlockVector<RangeType> Vector;
 
         typedef typename GridType::LevelGridView CoarseGridView;
-        typedef P1NodalBasis<CoarseGridView> CoarseBasis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<CoarseGridView>> CoarseBasis;
         typedef BasisGridFunction<CoarseBasis, Vector> CoarseGridFunction;
 
         typedef typename GridType::LeafGridView FineGridView;
-        typedef P1NodalBasis<FineGridView> FineBasis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<FineGridView>> FineBasis;
         typedef BasisGridFunction<FineBasis, Vector> FineGridFunction;
 
         typedef CoarseGridFunctionWrapper<CoarseGridFunction> WrappedCoarseGridFunction;
diff --git a/dune/fufem/test/generalizedlaplaceassemblertest.cc b/dune/fufem/test/generalizedlaplaceassemblertest.cc
index 4671d0b741189eb0c621f71903ad3b49bdeb2217..fc688c70f0fc079a45092cdbd18d61d3b9a1c6e9 100644
--- a/dune/fufem/test/generalizedlaplaceassemblertest.cc
+++ b/dune/fufem/test/generalizedlaplaceassemblertest.cc
@@ -10,8 +10,6 @@
 #include <dune/common/fmatrix.hh>
 #include <dune/istl/bvector.hh>
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
-
 #include <dune/fufem/functions/constantfunction.hh>
 #include <dune/fufem/functions/virtualgridfunction.hh>
 #include <dune/fufem/functions/virtualdifferentiablefunction.hh>
@@ -20,6 +18,9 @@
 #include <dune/fufem/assemblers/localassemblers/laplaceassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/generalizedlaplaceassembler.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 
@@ -96,7 +97,7 @@ struct GeneralizedLaplaceAssemblerTestSuite
 
         const int dim = GridType::dimension;
 
-        typedef P1NodalBasis<typename GridType::LeafGridView> Basis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> Basis;
         typedef typename Basis::LocalFiniteElement FE;
 
         Basis basis(grid.leafGridView());
diff --git a/dune/fufem/test/gridfunctionadaptortest.cc b/dune/fufem/test/gridfunctionadaptortest.cc
index 3ee11ac0e270bd576e313013bf3af7f089927d56..067302207c8b712439913f4ff6e365bc30e5ee9c 100644
--- a/dune/fufem/test/gridfunctionadaptortest.cc
+++ b/dune/fufem/test/gridfunctionadaptortest.cc
@@ -5,9 +5,11 @@
 #include <dune/fufem/functions/basisgridfunction.hh>
 #include <dune/fufem/functiontools/basisinterpolator.hh>
 #include <dune/fufem/functiontools/gridfunctionadaptor.hh>
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
 #include <dune/fufem/functionspacebases/conformingbasis.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 
@@ -35,7 +37,7 @@ struct Suite
     {
         const int dim = GridType::dimensionworld;
         typedef typename GridType::LeafGridView View;
-        typedef P1NodalBasis<View> NonconformingBasis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<View>> NonconformingBasis;
         typedef ConformingBasis<NonconformingBasis> Basis;
 
         typedef typename Dune::FieldVector<double, GridType::dimensionworld> DT;
diff --git a/dune/fufem/test/h1functionalassemblertest.cc b/dune/fufem/test/h1functionalassemblertest.cc
index ee4fada64c0c17141358f740505d2aba45b84ff8..f83329021ff2249fc498af739c9ed4f76f72978d 100644
--- a/dune/fufem/test/h1functionalassemblertest.cc
+++ b/dune/fufem/test/h1functionalassemblertest.cc
@@ -9,9 +9,6 @@
 #include <dune/common/fmatrix.hh>
 #include <dune/istl/bvector.hh>
 
-
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
-
 #include <dune/fufem/functions/basisgridfunction.hh>
 #include <dune/fufem/functions/virtualgridfunction.hh>
 #include <dune/fufem/functions/virtualdifferentiablefunction.hh>
@@ -20,6 +17,9 @@
 #include <dune/fufem/assemblers/localassemblers/laplaceassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/h1functionalassembler.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 /** \brief Wrapper for (Generic)GridFunctions representing the GridFunction's derivative
@@ -69,7 +69,7 @@ struct H1FunctionalAssemblerTestSuite
     template <typename GridType>
     bool check(const GridType& grid)
     {
-        typedef P1NodalBasis<typename GridType::LeafGridView> Basis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> Basis;
         typedef typename Basis::LocalFiniteElement FE;
 
         const int block_size=2;
diff --git a/dune/fufem/test/integraloperatorassemblertest.cc b/dune/fufem/test/integraloperatorassemblertest.cc
index 9994025b4e8b5690368b31b802904134e13d12ba..ef2684e18bbaaaa538d31813c17432f3af5791fc 100644
--- a/dune/fufem/test/integraloperatorassemblertest.cc
+++ b/dune/fufem/test/integraloperatorassemblertest.cc
@@ -3,11 +3,12 @@
 #include <dune/common/parallel/mpihelper.hh>
 #include <dune/common/function.hh>
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
-
 #include <dune/fufem/assemblers/integraloperatorassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/convolutionassembler.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include "common.hh"
 
 
@@ -52,7 +53,7 @@ struct IntegralOperatorAssemblerTestSuite
 
         Mollifier<dim> m(0.1);
 
-        typedef P1NodalBasis<typename GridType::LeafGridView> Basis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> Basis;
         Basis basis(grid.leafGridView());
 
         typename Dune::Matrix<Dune::FieldMatrix<double,1,1> > M1, M2;
diff --git a/dune/fufem/test/laplaceassemblertest.cc b/dune/fufem/test/laplaceassemblertest.cc
index 386e3974ba377e635134b4fcd02189b9de570c6e..78beab2b7c5fa2631eb8c4b1ea314ce8d3c38d6f 100644
--- a/dune/fufem/test/laplaceassemblertest.cc
+++ b/dune/fufem/test/laplaceassemblertest.cc
@@ -11,9 +11,8 @@
 #include <dune/fufem/boundarypatch.hh>
 #include <dune/fufem/assemblers/boundaryoperatorassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/laplaceassembler.hh>
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
-
-
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
 
 using namespace Dune;
 
@@ -31,7 +30,7 @@ int main (int argc, char *argv[])
   GridType grid(h,n);
 
   // Construct a function space basis for the grid
-  typedef P1NodalBasis<GridType::LeafGridView,double> P1Basis;
+  typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<GridType::LeafGridView>> P1Basis;
   P1Basis p1Basis(grid.leafGridView());
 
   // Construct a boundary patch for the entire grid boundary
diff --git a/dune/fufem/test/secondorderassemblertest.cc b/dune/fufem/test/secondorderassemblertest.cc
index 9e2d2bf1fac63b4e50b616080039c3eaa0a0c9ee..ae4a04a9533c8247db0f3f4c5e0301a2edeb0852 100644
--- a/dune/fufem/test/secondorderassemblertest.cc
+++ b/dune/fufem/test/secondorderassemblertest.cc
@@ -14,7 +14,6 @@
 
 #include <dune/fufem/boundarypatch.hh>
 #include <dune/fufem/assemblers/operatorassembler.hh>
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
 
 #include <dune/fufem/assemblers/localassemblers/secondorderoperatorassembler.hh>
 
@@ -22,6 +21,8 @@
 #include <dune/fufem/assemblers/localassemblers/vvlaplaceassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh>
 
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
 
 using namespace Dune;
 
@@ -78,7 +79,7 @@ int main (int argc, char *argv[])
   grid.globalRefine(refine);
 
   // Construct a function space basis for the grid
-  typedef P1NodalBasis<GridType::LeafGridView,double> P1Basis;
+  typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<GridType::LeafGridView>> P1Basis;
   P1Basis p1Basis(grid.leafGridView());
 
   // Construct a boundary patch for the entire grid boundary
diff --git a/dune/fufem/test/subgridxyfunctionalassemblertest.cc b/dune/fufem/test/subgridxyfunctionalassemblertest.cc
index 7b08fcf71bcdfc5eedfbb004c7e3c61b66c22922..118afa3dda3b8e6bec4e4c581ca7d8d12c5ca826 100644
--- a/dune/fufem/test/subgridxyfunctionalassemblertest.cc
+++ b/dune/fufem/test/subgridxyfunctionalassemblertest.cc
@@ -19,7 +19,9 @@
 #include <dune/subgrid/subgrid.hh>
 #endif
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
+
 #include <dune/fufem/functionspacebases/conformingbasis.hh>
 
 #include <dune/fufem/functions/basisgridfunction.hh>
@@ -200,8 +202,8 @@ struct SubgridL2FunctionalAssemblerTestSuite
 
         static const int block_size=2;
 
-        typedef P1NodalBasis<typename GridType::LeafGridView> NCBasis;
-        typedef P1NodalBasis<typename HostGridType::LeafGridView> NCHostBasis;
+        typedef typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> NCBasis;
+        typedef typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename HostGridType::LeafGridView>> NCHostBasis;
         typedef ConformingBasis<NCBasis> Basis;
         typedef ConformingBasis<NCHostBasis> HostBasis;
         typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,block_size,block_size> > Transfer;
@@ -214,7 +216,6 @@ struct SubgridL2FunctionalAssemblerTestSuite
 
         Transfer transfer;
 
-//        setupSubgridToHostgridTransfer<Transfer,P1NodalBasis,GridType>(transfer,grid);
         setupSubgridToHostgridTransfer<Transfer,Basis,HostBasis>(transfer,basis,hostbasis);
 
         /* the function to be plugged into the assembler */
@@ -296,8 +297,8 @@ struct SubgridH1FunctionalAssemblerTestSuite
 
         static const int block_size=1;
 
-        typedef P1NodalBasis<typename GridType::LeafGridView> NCBasis;
-        typedef P1NodalBasis<typename HostGridType::LeafGridView> NCHostBasis;
+        typedef typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> NCBasis;
+        typedef typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename HostGridType::LeafGridView>> NCHostBasis;
         typedef ConformingBasis<NCBasis> Basis;
         typedef ConformingBasis<NCHostBasis> HostBasis;
         typedef Dune::BCRSMatrix<Dune::FieldMatrix<double,block_size,block_size> > Transfer;
diff --git a/dune/fufem/test/sumfunctiontest.cc b/dune/fufem/test/sumfunctiontest.cc
index f93dcec928bfa5f4f73f67dc339f21933a7edd5f..38e02a6d1065ce1463fc99a0ff250ebf0a6468e2 100644
--- a/dune/fufem/test/sumfunctiontest.cc
+++ b/dune/fufem/test/sumfunctiontest.cc
@@ -16,7 +16,8 @@
 
 #include <dune/fufem/functiontools/basisinterpolator.hh>
 
-#include <dune/fufem/functionspacebases/p1nodalbasis.hh>
+#include <dune/fufem/functionspacebases/dunefunctionsbasis.hh>
+#include <dune/functions/functionspacebases/pq1nodalbasis.hh>
 
 #include "common.hh"
 
@@ -147,7 +148,7 @@ struct SumGridFunctionTestSuite
         TFType cos2x(0,TFType::COS);
         TFType cos2y(1,TFType::COS);
 
-        typedef P1NodalBasis<typename GridType::LeafGridView> Basis;
+        typedef DuneFunctionsBasis<Dune::Functions::PQ1NodalBasis<typename GridType::LeafGridView>> Basis;
         Basis basis(grid.leafGridView());
 
         typedef Dune::BlockVector<RangeType> CoeffType;