diff --git a/dune/microstructure/prestrainedMaterial.hh b/dune/microstructure/prestrainedMaterial.hh
index 4c8cba442cda47ac746cb1de0394013abc7178b4..008952bde46cf19fef09e092a8f29c8e60d01ab4 100644
--- a/dune/microstructure/prestrainedMaterial.hh
+++ b/dune/microstructure/prestrainedMaterial.hh
@@ -11,15 +11,15 @@
 #include <dune/microstructure/matrix_operations.hh>
 #include <dune/microstructure/voigthelper.hh>
 
-//TEST dune-vtk
-// #include <dune/vtk/function.hh>
-#include <dune/vtk/vtkwriter.hh>
-// #include <dune/vtk/vtkwriterbase.hh>
-#include <dune/vtk/writers/unstructuredgridwriter.hh>
-#include <dune/vtk/datacollectors/continuousdatacollector.hh>
-#include <dune/vtk/datacollectors/discontinuousdatacollector.hh>
-#include <dune/vtk/datacollectors/quadraticdatacollector.hh>
-#include <dune/vtk/datacollectors/lagrangedatacollector.hh>
+// //TEST dune-vtk
+// // #include <dune/vtk/function.hh>
+// #include <dune/vtk/vtkwriter.hh>
+// // #include <dune/vtk/vtkwriterbase.hh>
+// #include <dune/vtk/writers/unstructuredgridwriter.hh>
+// #include <dune/vtk/datacollectors/continuousdatacollector.hh>
+// #include <dune/vtk/datacollectors/discontinuousdatacollector.hh>
+// #include <dune/vtk/datacollectors/quadraticdatacollector.hh>
+// #include <dune/vtk/datacollectors/lagrangedatacollector.hh>
 
 using namespace MatrixOperations;
 using namespace Dune::Functions;
@@ -585,15 +585,16 @@ Dune::FieldMatrix<double,6,6> setupPhase(const int phase)
         // std::cout << "wrote data to file:" + resultPath + "/" + baseName + "_MaterialFunction-level"+ std::to_string(level) + "-" + std::to_string(vtkIndex) << std::endl;  
 
         //--Version using dune-vtk 
-        Dune::Vtk::DiscontinuousDataCollector<GridView> discontinuousDataCollector(gridView_);
+        // Dune::Vtk::DiscontinuousDataCollector<GridView> discontinuousDataCollector(gridView_);
         // Dune::Vtk::YaspDataCollector<GridView, 4> yaspDataCollector(gridView_);
         // Dune::Vtk::LagrangeDataCollector<GridView, 4> lagrangeDataCollector(gridView_);
-        Dune::Vtk::UnstructuredGridWriter writer(discontinuousDataCollector, Dune::Vtk::FormatTypes::ASCII, Dune::Vtk::DataTypes::FLOAT32);
+        // Dune::Vtk::UnstructuredGridWriter writer(lagrangeDataCollector, Dune::Vtk::FormatTypes::ASCII, Dune::Vtk::DataTypes::FLOAT32);
+        // // Dune::Vtk::UnstructuredGridWriter writer(discontinuousDataCollector, Dune::Vtk::FormatTypes::ASCII, Dune::Vtk::DataTypes::FLOAT32);
 
-        auto f2 = Dune::Functions::makeAnalyticGridViewFunction(indicatorFunction_ ,gridView_);
-        // writer.addPointData(f2 , "IndicatorFunction");
-        writer.addCellData(f2 , "IndicatorFunction");
-        writer.write(resultPath + "/" + baseName + "_MaterialFunction-level"+ std::to_string(level) + "_DuneVTK");
+        // auto f2 = Dune::Functions::makeAnalyticGridViewFunction(indicatorFunction_ ,gridView_);
+        // // writer.addPointData(f2 , "IndicatorFunction");
+        // writer.addCellData(f2 , "IndicatorFunction");
+        // writer.write(resultPath + "/" + baseName + "_MaterialFunction-level"+ std::to_string(level) + "_DuneVTK");
 	      return;
   };
 
diff --git a/src/macro-problem.cc b/src/macro-problem.cc
index d184f3ebc00a3605581ffa997841e27a7a1625b7..9ed374f507c52c70e49267a620e966314c875a78 100644
--- a/src/macro-problem.cc
+++ b/src/macro-problem.cc
@@ -553,21 +553,12 @@ int main(int argc, char *argv[])
     // SubsamplingVTKWriter<GridView> vtkWriter(gridView, Dune::refinementLevels(2));
 
 
-    // //TEST dune-vtk:
-
+    // Use VTK writer from dune-vtk
     // Setup a DataCollector of order 4.
     Dune::Vtk::LagrangeDataCollector<GridView, 4> lagrangeDataCollector(gridView);
     Dune::Vtk::DiscontinuousDataCollector<GridView> discontinuousDataCollector(gridView);
-
-    // VtkWriter writer{gridView, Dune::Vtk::FormatTypes::ASCII};
-    // Dune::Vtk::VtkWriter writer{gridView,  Dune::Vtk::FormatTypes::ASCII};
-
-    // Dune::Vtk::VtkWriterBase writer{gridView,  Dune::Vtk::FormatTypes::ASCII};
-
-
-    // Dune::Vtk::VtkWriterBase<GridView,Dune::Vtk::LagrangeDataCollector<GridView, 2> > writer{gridView,  Dune::Vtk::FormatTypes::ASCII};
-    // Vtk::UnstructuredGridWriter writer(lagrangeDataCollector, Vtk::FormatTypes::ASCII, Vtk::DataTypes::FLOAT32);
-    Vtk::UnstructuredGridWriter writer(discontinuousDataCollector, Vtk::FormatTypes::ASCII, Vtk::DataTypes::FLOAT32);
+    Dune::Vtk::UnstructuredGridWriter duneVTKwriter(lagrangeDataCollector, Dune::Vtk::FormatTypes::ASCII, Vtk::DataTypes::FLOAT32);
+    // Dune::Vtk::UnstructuredGridWriter writer(discontinuousDataCollector, Dune::Vtk::FormatTypes::ASCII, Vtk::DataTypes::FLOAT32);
 
 
     /**
@@ -578,49 +569,7 @@ int main(int argc, char *argv[])
                       power<3>(
                       lagrange<1>(),
                       flatLexicographic()));
-    // auto normalBasis = makeBasis(gridView,
-    //                               power<3>(
-    //                               lagrang e<1>(),
-    //                               blockedInterleaved()));
-
-
-    // TEST Compute isometry error function:
-
-
-
-
-// //         auto diff = (rot.transposed()*rot) - I;
-//     auto tmpFunction = GlobalKirchhoffFunction{gridView, [&](auto x) 
-//      {
-//       return localDKFunctionDouble.evaluateDerivative(x);
-//      }};
-
-
-    //  auto isoErrorFunction = GlobalFunction{gridView, [&](auto x) 
-    //  {
-    //   auto tmp = tmpFunction(x);
-    //   auto out = (tmp.transposed()*tmp) - I; 
-    //   auto r = out.frobenius_norm();
-    //   return r; 
-      
-    //  }};
-
-    //  auto isoErrorFunction = GlobalKirchhoffFunction{gridView, [&](auto x) 
-    // //  {
-      
-    //   auto tmp = localDKFunctionDouble.evaluateDerivative(x);
 
-    //   auto out = (tmp.transposed()*tmp) - I; 
-
-    //   auto r = out.frobenius_norm();
-
-    //   return r; 
-      
-    //  }};
-
-
-
-    // writer.addPointData(isoErrorFunction, Dune::Vtk::FieldInfo{"isoErrorFunction dune-VTK",1, Vtk::RangeTypes::SCALAR});
 
 
     // ComposedGridFunction - approach:
@@ -628,83 +577,20 @@ int main(int argc, char *argv[])
     auto deformationGradientLocalFunction = localFunction(deformationGradientFunction);
 
 
-    // auto normDiffFunction = [&](auto M)
-    // {
-    //   return ((M.transposed()*M) - I).frobenius_norm();
-
-    // };
-    auto normDiffFunction = [](Dune::FieldMatrix<double,3,2> M) -> double
-    {
-      FieldMatrix<double,2,2> Id = ScaledIdentityMatrix<double,2>(1);
-      return ((M.transposed()*M) - Id).frobenius_norm();
-    };
-
-    //
-
-    // auto gf_gridfunction = makeComposedGridFunction(normDiffFunction, std::ref(deformationGradientFunction));
-    auto gf_gridfunction = makeComposedGridFunction(normDiffFunction, deformationGradientFunction);
-    // writer.addPointData(gf_gridfunction , Dune::Vtk::FieldInfo{"isoErrorFunction dune-VTK",1, Vtk::RangeTypes::SCALAR});
-    // writer.addPointData(gf_gridfunction , VTK::FieldInfo("isoErrorFunction", VTK::FieldInfo::Type::scalar, 1));
-
-    vtkWriter.addVertexData(gf_gridfunction, VTK::FieldInfo("isoErrorFunction", VTK::FieldInfo::Type::scalar, 1));
-
-
-
-    auto identityF =   Dune::Functions::makeAnalyticGridViewFunction([](auto&& x) -> Dune::FieldMatrix<double,2,2> {
-      return ScaledIdentityMatrix<double,2>(1);
-
-    }, gridView);
-    // auto c = Dune::Function::makeComposedGridFunction(Difference2(),deformationGradientFunction,ScaledIdentityMatrix<double,2>(1));
-    // auto c = Dune::Function::makeComposedGridFunction(Difference2(),deformationGradientFunction,ScaledIdentityMatrix<double,2>(1));
-
-    // auto isoErrorFunction =[](auto M, auto Id)-> double {
-    //     return ((M.transposed()*M) - Id).frobenius_norm();
-    // };
-
-
-    // // auto c = makeComposedGridFunction(Difference2(),deformationGradientFunction,identityF); //works.
-    // auto c = makeComposedGridFunction(isoErrorFunction,deformationGradientFunction,identityF);
 
     FieldMatrix<double,2,2> I = ScaledIdentityMatrix<double,2>(1);
 
-    auto isoErrorFunction =[&](auto M)-> double {
+    auto isometryErrorFunction =[&](auto M)-> double {
         return ((M.transposed()*M) - I).frobenius_norm();
     };
 
+    auto isometryErrorGridFunction = makeComposedGridFunction(isometryErrorFunction,deformationGradientFunction);
 
-    // auto c = makeComposedGridFunction(Difference2(),deformationGradientFunction,identityF); //works.
-    auto c = makeComposedGridFunction(isoErrorFunction,deformationGradientFunction);
-
-    writer.addPointData(c, "IsometryError");
-
-
+    duneVTKwriter.addPointData(isometryErrorGridFunction, "IsometryError");
+    vtkWriter.addVertexData(isometryErrorGridFunction , VTK::FieldInfo("isoErrorFunction", VTK::FieldInfo::Type::scalar, 1));
 
-    // auto normalLambda = [deformationFunction](const FieldVector<double,2>& x)
-    // {
-    //   // deformationfunction.derivative() ... //needs binding?!
-  
-    // }
 
 
-    //  auto isoErrorFunction = GlobalFunction{gridView, [&](auto x) 
-    //  {
-    //   auto tmp = deformationGradientLocalFunction(x);
-    //   auto out = (tmp.transposed()*tmp) - I; 
-    //   auto r = out.frobenius_norm();
-    //   return r; 
-    //  }};
-
-    //  auto isoErrorFunction = GlobalFunction{gridView, [&](auto x) 
-    //  {
-    //     return gf_gridfunction(x);
-    //  }};
-
-
-      // writer.addPointData(gf_gridfunction , VTK::FieldInfo("isoErrorFunction", VTK::FieldInfo::Type::scalar, 1));
-
-    // auto f1 = GlobalFunction{gridView, normDiff};
-    // writer.addPointData(isoErrorFunction, VTK::FieldInfo("isoErrorFunction", VTK::FieldInfo::Type::scalar, 1));
-
 
     /**
      * @brief Interpolate and VTK-write analytical solution "u" from ParamterFile.
@@ -713,38 +599,16 @@ int main(int argc, char *argv[])
     {
       // auto pythonAnalyticalSolution = Python::makeDifferentiableFunction<FieldVector<double,3>(FieldVector<double,2>)>(pyModule.get("u"), pyModule.get("du"));
       auto pythonAnalyticalSolution = Python::makeDifferentiableFunction<FieldVector<double,3>(FieldVector<double,2>)>(pyModule.get("displacement"), pyModule.get("displacementGradient"));
+      vtkWriter.addVertexData((pythonAnalyticalSolution), VTK::FieldInfo("displacement_analytical", VTK::FieldInfo::Type::vector, 3));
 
-
-      // deprecated: interpolate ...
-      // VectorSpaceCoefficients y(deformationBasis.size());
-      // interpolate(deformationBasis, y, pythonAnalyticalSolution);
-      // // Compute the displacement
-      // auto displacementAnalytical = y;
-      // // displacementAnalytical -= identity_tmp;
-      // displacementAnalytical -= identity;
-
-
-      // //TEST dune-vtk:
-      // VtkWriter writer{gridView, Dune::Vtk::FormatTypes::ASCII};
-      // auto f2 = GlobalFunction{gridView, [&](auto x) {return pythonAnalyticalSolution(x); }};
-      auto f2 = Dune::Functions::makeAnalyticGridViewFunction( pythonAnalyticalSolution ,gridView);
-      // writer.addPointData(f2, Dune::Vtk::FieldInfo{"displacement_analytical dune-VTK",3, Vtk::RangeTypes::VECTOR});
-      writer.addPointData(f2, "pythonAnalytic");
-
-
-
-
-
+      //dune-vtk:
+      auto pythonAnalyticalSolutionGVF = Dune::Functions::makeAnalyticGridViewFunction(pythonAnalyticalSolution ,gridView);
+      duneVTKwriter.addPointData(pythonAnalyticalSolutionGVF, Dune::Vtk::FieldInfo{"displacement_analytical dune-VTK",3, Dune::Vtk::RangeTypes::VECTOR});
 
 
 
-      // auto pythonIdentity =   Python::make_function<FieldVector<double,3>>(IdentityGridEmbedding<double>::operator())
-      // auto displacementFunctionAnalytical = Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,3>>(deformationBasis, displacementAnalytical);
-      // auto deformationFunctionAnalytical = Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,3>>(deformationBasis, y);
-      // vtkWriter.addVertexData(displacementFunctionAnalytical, VTK::FieldInfo("displacement_analytical", VTK::FieldInfo::Type::vector, 3));
-      // vtkWriter.addVertexData(deformationFunctionAnalytical, VTK::FieldInfo("deformation_analytical", VTK::FieldInfo::Type::vector, 3));
     
-      vtkWriter.addVertexData((pythonAnalyticalSolution), VTK::FieldInfo("displacement_analytical", VTK::FieldInfo::Type::vector, 3));
+
       /**
        * @brief Get the normal vector field of the surface parametrized 
        *        by the analytical solution.
@@ -754,22 +618,12 @@ int main(int argc, char *argv[])
       {
       // Get the surface normal function.
       auto pythonSurfaceNormal = Python::make_function<FieldVector<double,3>>(pyModule.get("surfaceNormal"));
-
-
-      // deprecated: interpolate ...
-      // std::vector<FieldVector<double,3>> normalVectorCoefficients(normalBasis.size());
-      // Dune::Functions::interpolate(normalBasis, normalVectorCoefficients, pythonSurfaceNormal); 
-      // auto surfaceNormalAnalytical = Functions::makeDiscreteGlobalBasisFunction<FieldVector<double,3>>(normalBasis, normalVectorCoefficients);
-      // vtkWriter.addVertexData(surfaceNormalAnalytical, VTK::FieldInfo("surfaceNormal_analytical", VTK::FieldInfo::Type::vector, 3));
-
       vtkWriter.addVertexData(pythonSurfaceNormal, VTK::FieldInfo("surfaceNormal_analytical", VTK::FieldInfo::Type::vector, 3));
 
 
       //dune-vtk 
-      // auto f3 = GlobalFunction{gridView, [&](auto x) {return pythonSurfaceNormal(x); }};
-      auto f3 = Dune::Functions::makeAnalyticGridViewFunction(pythonSurfaceNormal ,gridView);
-      // writer.addPointData(f3, Dune::Vtk::FieldInfo{"surfaceNormal_analytical dune-VTK",3, Vtk::RangeTypes::VECTOR});
-      writer.addPointData(f3, "pythonSurfaceNormal");
+      auto pythonSurfaceNormalGVF = Dune::Functions::makeAnalyticGridViewFunction(pythonSurfaceNormal ,gridView);
+      duneVTKwriter.addPointData(pythonSurfaceNormalGVF, Dune::Vtk::FieldInfo{"surfaceNormal_analytical dune-VTK",3, Dune::Vtk::RangeTypes::VECTOR});
 
       }
     }
@@ -789,14 +643,9 @@ int main(int argc, char *argv[])
 
 
 
-    // writer.addPointData(displacementFunction, Dune::Vtk::FieldInfo{"displacement dune-VTK",3, Vtk::RangeTypes::VECTOR});
-    // writer.addPointData(surfaceNormalDiscrete, Dune::Vtk::FieldInfo{"surfaceNormal_discrete dune-VTK",3, Vtk::RangeTypes::VECTOR});
-    writer.addPointData(displacementFunction, "displacement dune-VTK");
-    writer.addPointData(surfaceNormalDiscrete, "surfaceNormal_discrete dune-VTK");
-
-
-    // dune-vtk 
-    writer.write(resultFileName + "_DuneVTK");
+    duneVTKwriter.addPointData(displacementFunction, Dune::Vtk::FieldInfo{"displacement dune-VTK",3, Vtk::RangeTypes::VECTOR});
+    duneVTKwriter.addPointData(surfaceNormalDiscrete, Dune::Vtk::FieldInfo{"surfaceNormal_discrete dune-VTK",3, Vtk::RangeTypes::VECTOR});
+    duneVTKwriter.write(resultFileName + "_DuneVTK");
   }