diff --git a/dune/gfe/mixedriemanniantrsolver.cc b/dune/gfe/mixedriemanniantrsolver.cc
index dff40c95860ada21929500f252d4af44dd57de5d..5d32978cdaaa680b262a77d5aeee1601b7387001 100644
--- a/dune/gfe/mixedriemanniantrsolver.cc
+++ b/dune/gfe/mixedriemanniantrsolver.cc
@@ -208,7 +208,7 @@ setup(const GridType& grid,
                                          FufemBasis0>(pkToP1TransferMatrix,p1Basis,*basis0_);
 
         mmgStep0->mgTransfer_.back() = std::make_shared<TruncatedCompressedMGTransfer<CorrectionType0>>();
-        Dune::shared_ptr<TransferOperatorType> topTransferOperator = Dune::make_shared<TransferOperatorType>(pkToP1TransferMatrix);
+        std::shared_ptr<TransferOperatorType> topTransferOperator = std::make_shared<TransferOperatorType>(pkToP1TransferMatrix);
         std::dynamic_pointer_cast<TruncatedCompressedMGTransfer<CorrectionType0>>(mmgStep0->mgTransfer_.back())->setMatrix(topTransferOperator);
 
         for (size_t i=0; i<mmgStep0->mgTransfer_.size()-1; i++){
diff --git a/dune/gfe/riemanniantrsolver.hh b/dune/gfe/riemanniantrsolver.hh
index a3f5ec3d28a80c2cfdef844ccfb3d5f19e5a7670..7fc9ea26fd2f1ffaca0e7f122194d5a245e2fb28 100644
--- a/dune/gfe/riemanniantrsolver.hh
+++ b/dune/gfe/riemanniantrsolver.hh
@@ -137,7 +137,7 @@ public:
     void setIgnoreNodes(const Dune::BitSetVector<blocksize>& ignoreNodes)
     {
         ignoreNodes_ = &ignoreNodes;
-        Dune::shared_ptr<LoopSolver<CorrectionType> > loopSolver = std::dynamic_pointer_cast<LoopSolver<CorrectionType> >(innerSolver_);
+        std::shared_ptr<LoopSolver<CorrectionType> > loopSolver = std::dynamic_pointer_cast<LoopSolver<CorrectionType> >(innerSolver_);
         assert(loopSolver);
         loopSolver->iterationStep_->ignoreNodes_ = ignoreNodes_;
     }
diff --git a/src/compute-disc-error.cc b/src/compute-disc-error.cc
index 97cabf4093320723277103a98e7a3bd3fc21e26c..6fa0ca0059ced22006ffd29436fdead6fab2a93f 100644
--- a/src/compute-disc-error.cc
+++ b/src/compute-disc-error.cc
@@ -671,7 +671,7 @@ int main (int argc, char *argv[]) try
 
   const int numLevels = parameterSet.get<int>("numLevels");
 
-  shared_ptr<GridType> grid, referenceGrid;
+  std::shared_ptr<GridType> grid, referenceGrid;
 
   FieldVector<double,dimworld> lower(0), upper(1);
 
@@ -706,8 +706,8 @@ int main (int argc, char *argv[]) try
   {
     std::string path                = parameterSet.get<std::string>("path");
     std::string gridFile            = parameterSet.get<std::string>("gridFile");
-    grid          = shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
-    referenceGrid = shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
+    grid          = std::shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
+    referenceGrid = std::shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
   }
 
   grid->globalRefine(numLevels-1);
diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc
index e34df722a89618c99398b706ec56d4a6ed30295a..1bd4144a3c9a616571fffa131ce13bb40723b2ed 100644
--- a/src/cosserat-continuum.cc
+++ b/src/cosserat-continuum.cc
@@ -177,7 +177,7 @@ int main (int argc, char *argv[]) try
     typedef UGGrid<dim> GridType;
 #endif
 
-    shared_ptr<GridType> grid;
+    std::shared_ptr<GridType> grid;
 
     FieldVector<double,dimworld> lower(0), upper(1);
 
@@ -201,7 +201,7 @@ int main (int argc, char *argv[]) try
         std::string suffix = gridFile.substr(dotPos, gridFile.length()-dotPos);
 
         if (suffix == ".msh")
-            grid = shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
+            grid = std::shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
         else if (suffix == ".vtu" or suffix == ".vtp")
             grid = VTKReader<GridType>::read(path + "/" + gridFile);
     }
@@ -266,12 +266,10 @@ int main (int argc, char *argv[]) try
 
     for (auto&& vertex : vertices(gridView))
     {
-        bool isDirichlet;
-        pythonDirichletVertices.evaluate(vertex.geometry().corner(0), isDirichlet);
+        bool isDirichlet = pythonDirichletVertices(vertex.geometry().corner(0));
         dirichletVertices[indexSet.index(vertex)] = isDirichlet;
 
-        bool isNeumann;
-        pythonNeumannVertices.evaluate(vertex.geometry().corner(0), isNeumann);
+        bool isNeumann = pythonNeumannVertices(vertex.geometry().corner(0));
         neumannVertices[indexSet.index(vertex)] = isNeumann;
     }
 
@@ -429,14 +427,14 @@ int main (int argc, char *argv[]) try
     // ////////////////////////////////////////////////////////////
 
     const ParameterTree& materialParameters = parameterSet.sub("materialParameters");
-    shared_ptr<NeumannFunction> neumannFunction;
+    std::shared_ptr<NeumannFunction> neumannFunction;
     if (parameterSet.hasKey("neumannValues"))
-        neumannFunction = make_shared<NeumannFunction>(parameterSet.get<FieldVector<double,3> >("neumannValues"),
+        neumannFunction = std::make_shared<NeumannFunction>(parameterSet.get<FieldVector<double,3> >("neumannValues"),
                                                        homotopyParameter);
 
-    shared_ptr<VolumeLoad> volumeLoad;
+    std::shared_ptr<VolumeLoad> volumeLoad;
     if (parameterSet.hasKey("volumeLoad"))
-        volumeLoad = make_shared<VolumeLoad>(parameterSet.get<FieldVector<double,3> >("volumeLoad"),
+        volumeLoad = std::make_shared<VolumeLoad>(parameterSet.get<FieldVector<double,3> >("volumeLoad"),
                                                                                           homotopyParameter);
 
     if (mpiHelper.rank() == 0) {
diff --git a/src/film-on-substrate.cc b/src/film-on-substrate.cc
index dbd81056278ea589e34e932c598e18bc23183136..4c2cfa1ae0a52eafade6e51c67ceaf78d8896e74 100644
--- a/src/film-on-substrate.cc
+++ b/src/film-on-substrate.cc
@@ -348,7 +348,7 @@ int main (int argc, char *argv[]) try
     std::shared_ptr<NeumannFunction> neumannFunction;
     if (parameterSet.hasKey("neumannValues"))
     {
-      neumannFunction = make_shared<NeumannFunction>(parameterSet.get<FieldVector<double,dim> >("neumannValues"),
+      neumannFunction = std::make_shared<NeumannFunction>(parameterSet.get<FieldVector<double,dim> >("neumannValues"),
                                                      homotopyParameter);
 
       std::cout << "Neumann values: " << parameterSet.get<FieldVector<double,dim> >("neumannValues") << std::endl;
diff --git a/src/gradient-flow.cc b/src/gradient-flow.cc
index e9c32fb13b43737564321e46db8845c226dfe9df..0ada4c171bd8e209fb95163e7a9d887552fc3a79 100644
--- a/src/gradient-flow.cc
+++ b/src/gradient-flow.cc
@@ -164,8 +164,7 @@ int main (int argc, char *argv[]) try
 
   for (auto&& vertex : vertices(grid->leafGridView()))
   {
-    bool isDirichlet;
-    pythonDirichletVertices.evaluate(vertex.geometry().corner(0), isDirichlet);
+    bool isDirichlet = pythonDirichletVertices(vertex.geometry().corner(0));
     dirichletVertices[indexSet.index(vertex)] = isDirichlet;
   }
 
diff --git a/src/harmonicmaps.cc b/src/harmonicmaps.cc
index 78cbc34011206c5a1443bdb5aecbf52bdf257457..772fc06e6103f0b407841c6a42b496596f107bd5 100644
--- a/src/harmonicmaps.cc
+++ b/src/harmonicmaps.cc
@@ -172,7 +172,7 @@ int main (int argc, char *argv[])
     typedef std::conditional<dim==1,OneDGrid,UGGrid<dim> >::type GridType;
 #endif
 
-    shared_ptr<GridType> grid;
+    std::shared_ptr<GridType> grid;
     FieldVector<double,dimworld> lower(0), upper(1);
     std::array<unsigned int,dim> elements;
 
@@ -195,7 +195,7 @@ int main (int argc, char *argv[])
         std::string path                = parameterSet.get<std::string>("path");
         std::string gridFile            = parameterSet.get<std::string>("gridFile");
 
-        grid = shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
+        grid = std::shared_ptr<GridType>(GmshReader<GridType>::read(path + "/" + gridFile));
     }
 
     grid->globalRefine(numLevels-1);
@@ -224,9 +224,7 @@ int main (int argc, char *argv[])
 
     for (auto&& vertex : vertices(gridView))
     {
-      //bool isDirichlet;
       bool isDirichlet = pythonDirichletVertices(vertex.geometry().corner(0));
-      pythonDirichletVertices.evaluate(vertex.geometry().corner(0), isDirichlet);
       dirichletVertices[indexSet.index(vertex)] = isDirichlet;
     }
 
diff --git a/test/localgeodesicfefunctiontest.cc b/test/localgeodesicfefunctiontest.cc
index 30ec726bdc110a316f584f7184faf4af18b20bb4..a2fa30ba11d9fd40d18180f39a36141ee3fef364 100644
--- a/test/localgeodesicfefunctiontest.cc
+++ b/test/localgeodesicfefunctiontest.cc
@@ -76,8 +76,7 @@ void testPermutationInvariance(const std::vector<TargetSpace>& corners)
     PQkLocalFiniteElementCache<double,double,domainDim,1> feCache;
     typedef typename PQkLocalFiniteElementCache<double,double,domainDim,1>::FiniteElementType LocalFiniteElement;
     
-    GeometryType simplex;
-    simplex.makeSimplex(domainDim);
+    GeometryType simplex = GeometryTypes::simplex(domainDim);
 
     //
     std::vector<TargetSpace> cornersRotated1(domainDim+1);
diff --git a/test/localprojectedfefunctiontest.cc b/test/localprojectedfefunctiontest.cc
index 7d266d6240c26a01f6ebd843f65ac544936f8420..d2f6829398d13b3c60ba4052988e38ad8f701a7d 100644
--- a/test/localprojectedfefunctiontest.cc
+++ b/test/localprojectedfefunctiontest.cc
@@ -118,8 +118,7 @@ void testPermutationInvariance(const std::vector<TargetSpace>& corners)
     PQkLocalFiniteElementCache<double,double,domainDim,1> feCache;
     typedef typename PQkLocalFiniteElementCache<double,double,domainDim,1>::FiniteElementType LocalFiniteElement;
 
-    GeometryType simplex;
-    simplex.makeSimplex(domainDim);
+    GeometryType simplex = GeometryTypes::simplex(domainDim);
 
     //
     std::vector<TargetSpace> cornersRotated1(domainDim+1);