diff --git a/dune.module b/dune.module
index 293d491042df2d1ec448ebfd14ef1d39d6b05928..57ba73870d70253394a5b1b9349e04717c301198 100644
--- a/dune.module
+++ b/dune.module
@@ -7,5 +7,5 @@ Module: dune-vtk
 Version: 0.1
 Maintainer: simon.praetorius@tu-dresden.de
 #depending on
-Depends: dune-grid dune-functions
-Suggests: dune-spgrid dune-polygongrid
\ No newline at end of file
+Depends: dune-grid
+Suggests: dune-functions dune-spgrid dune-polygongrid
\ No newline at end of file
diff --git a/dune/vtk/datacollectors/continuousdatacollector.hh b/dune/vtk/datacollectors/continuousdatacollector.hh
index 22f48f3ccdc807debe700059946bb0a1616be79f..36c4c692751a79b46810cc974479ce022a8728b2 100644
--- a/dune/vtk/datacollectors/continuousdatacollector.hh
+++ b/dune/vtk/datacollectors/continuousdatacollector.hh
@@ -1,5 +1,6 @@
 #pragma once
 
+#include <numeric>
 #include "unstructureddatacollector.hh"
 
 namespace Dune
diff --git a/dune/vtk/vtkfunction.hh b/dune/vtk/vtkfunction.hh
index 4593f8d9ea57dd5d05f69911f389fdf3e9ab8fcd..8fa14a7c0565592e7082f4eb0086c197983ddfc4 100644
--- a/dune/vtk/vtkfunction.hh
+++ b/dune/vtk/vtkfunction.hh
@@ -3,7 +3,6 @@
 #include <type_traits>
 
 #include <dune/common/std/type_traits.hh>
-#include <dune/functions/common/signature.hh>
 
 #include "vtklocalfunction.hh"
 #include "vtktypes.hh"
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a50e8fcacb540d9d70f53c732778db330bd0199a..46958c1bfe2f4151d9f5308adc860ff1fc2c170d 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,30 +1,33 @@
-add_executable("vtkwriter" vtkwriter.cc)
-target_link_dune_default_libraries("vtkwriter")
-target_link_libraries("vtkwriter" dunevtk)
 
 add_executable("vtkreader" vtkreader.cc)
 target_link_dune_default_libraries("vtkreader")
 target_link_libraries("vtkreader" dunevtk)
 
-add_executable("benchmark" benchmark.cc)
-target_link_dune_default_libraries("benchmark")
-target_link_libraries("benchmark" dunevtk)
-
-add_executable("datacollector" datacollector.cc)
-target_link_dune_default_libraries("datacollector")
-target_link_libraries("datacollector" dunevtk)
-
-add_executable("structuredgridwriter" structuredgridwriter.cc)
-target_link_dune_default_libraries("structuredgridwriter")
-target_link_libraries("structuredgridwriter" dunevtk)
-
 add_executable("legacyvtkwriter" legacyvtkwriter.cc)
 target_link_dune_default_libraries("legacyvtkwriter")
 target_link_libraries("legacyvtkwriter" dunevtk)
 
-add_executable("geometrygrid" geometrygrid.cc)
-target_link_dune_default_libraries("geometrygrid")
-target_link_libraries("geometrygrid" dunevtk)
+if (dune-functions_FOUND)
+  add_executable("vtkwriter" vtkwriter.cc)
+  target_link_dune_default_libraries("vtkwriter")
+  target_link_libraries("vtkwriter" dunevtk)
+
+  add_executable("benchmark" benchmark.cc)
+  target_link_dune_default_libraries("benchmark")
+  target_link_libraries("benchmark" dunevtk)
+
+  add_executable("datacollector" datacollector.cc)
+  target_link_dune_default_libraries("datacollector")
+  target_link_libraries("datacollector" dunevtk)
+
+  add_executable("structuredgridwriter" structuredgridwriter.cc)
+  target_link_dune_default_libraries("structuredgridwriter")
+  target_link_libraries("structuredgridwriter" dunevtk)
+
+  add_executable("geometrygrid" geometrygrid.cc)
+  target_link_dune_default_libraries("geometrygrid")
+  target_link_libraries("geometrygrid" dunevtk)
+endif ()
 
 if (dune-polygongrid_FOUND)
   add_executable("polygongrid" polygongrid.cc)
diff --git a/src/legacyvtkwriter.cc b/src/legacyvtkwriter.cc
index 0ed25c63fae246e5e9f633966da72f9b9eb9aa34..b001fce11fc11b0a02dec28d0833698393952fd7 100644
--- a/src/legacyvtkwriter.cc
+++ b/src/legacyvtkwriter.cc
@@ -12,11 +12,6 @@
 #include <dune/common/exceptions.hh> // We use exceptions
 #include <dune/common/filledarray.hh>
 
-#include <dune/functions/functionspacebases/defaultglobalbasis.hh>
-#include <dune/functions/functionspacebases/lagrangebasis.hh>
-#include <dune/functions/functionspacebases/interpolate.hh>
-#include <dune/functions/gridfunctions/analyticgridviewfunction.hh>
-#include <dune/functions/gridfunctions/discreteglobalbasisfunction.hh>
 #include <dune/grid/uggrid.hh>
 #include <dune/grid/yaspgrid.hh>
 
@@ -24,7 +19,6 @@
 #include <dune/vtk/legacyvtkfunction.hh>
 
 using namespace Dune;
-using namespace Dune::Functions;
 
 int main(int argc, char** argv)
 {
@@ -39,14 +33,7 @@ int main(int argc, char** argv)
   using GridView = typename GridType::LeafGridView;
   GridView gridView = grid.leafGridView();
 
-  using namespace BasisFactory;
-  auto basis = makeBasis(gridView, lagrange<1>());
-
-  std::vector<double> p1function(basis.dimension());
-  interpolate(basis, p1function, [](auto const& x) {
-    return 100*x[0] + 10*x[1] + 1*x[2];
-  });
-
+  std::vector<double> p1function(gridView.size(dim), 1.0);
   using P1Function = P1VTKFunction<GridView,std::vector<double>>;
   std::shared_ptr<VTKFunction<GridView> const> p1FctWrapped(new P1Function(gridView, p1function, "p1"));
 
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
index 77409fec3c8b51e4b73abb957d624162ff4ce476..dd38c57a2905ccb463c1d9b00f738c25bf632956 100644
--- a/src/test/CMakeLists.txt
+++ b/src/test/CMakeLists.txt
@@ -1,5 +1,6 @@
 dune_add_test(SOURCES reader_writer_test.cc
-              LINK_LIBRARIES dunevtk)
+              LINK_LIBRARIES dunevtk
+              CMAKE_GUARD)
 
 dune_add_test(SOURCES mixed_element_test.cc
               LINK_LIBRARIES dunevtk