diff --git a/dune/vtk/CMakeLists.txt b/dune/vtk/CMakeLists.txt
index 49f14785ec3b546a35e00ed0f040094c2b42e501..4715cce1f4e9c2b036dd026a18bdf7ae5134f911 100644
--- a/dune/vtk/CMakeLists.txt
+++ b/dune/vtk/CMakeLists.txt
@@ -8,7 +8,6 @@ install(FILES
   defaultvtkfunction.hh
   filereader.hh
   filewriter.hh
-  forward.hh
   gridcreatorinterface.hh
   legacyvtkfunction.hh
   pvdwriter.hh
diff --git a/dune/vtk/datacollectorinterface.hh b/dune/vtk/datacollectorinterface.hh
index a2153bc5b8aa2afaf2a3078f64ecf0d0b2922f20..905c8a4a9115e1eb3bb64aa929176a192d364e5e 100644
--- a/dune/vtk/datacollectorinterface.hh
+++ b/dune/vtk/datacollectorinterface.hh
@@ -3,6 +3,8 @@
 #include <cstdint>
 #include <vector>
 
+#include <dune/grid/common/partitionset.hh>
+
 namespace Dune
 {
   namespace Vtk
@@ -13,7 +15,7 @@ namespace Dune
     * \tparam Derived       Implementation of a concrete DataCollector.
     * \tparam Partition     Dune::PartitionType [Partitions::InteriorBorder]
     **/
-    template <class GridViewType, class Derived, class Partition>
+    template <class GridViewType, class Derived, class Partition = Partitions::InteriorBorder>
     class DataCollectorInterface
     {
     public:
diff --git a/dune/vtk/datacollectors/continuousdatacollector.hh b/dune/vtk/datacollectors/continuousdatacollector.hh
index 4dc1de48142656ea1da75dc46fbda8277284167f..10c8409d8de5f5d5aa97f04220213e3a963c9594 100644
--- a/dune/vtk/datacollectors/continuousdatacollector.hh
+++ b/dune/vtk/datacollectors/continuousdatacollector.hh
@@ -4,9 +4,8 @@
 #include <vector>
 
 #include <dune/geometry/referenceelements.hh>
+#include <dune/grid/common/partitionset.hh>
 #include <dune/grid/utility/globalindexset.hh>
-
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/types.hh>
 
 #include "unstructureddatacollector.hh"
@@ -16,7 +15,7 @@ namespace Dune
   namespace Vtk
   {
     /// Implementation of \ref DataCollector for linear cells, with continuous data.
-    template <class GridView, class Partition>
+    template <class GridView, class Partition = Partitions::InteriorBorder>
     class ContinuousDataCollector
         : public UnstructuredDataCollectorInterface<GridView, ContinuousDataCollector<GridView,Partition>, Partition>
     {
diff --git a/dune/vtk/datacollectors/discontinuousdatacollector.hh b/dune/vtk/datacollectors/discontinuousdatacollector.hh
index 8d75ae890bdfd56cdfcc21d5f2b9fb1bc4d4bc6a..133563687c067d4a26563e2d0ed55bc9bf54df9d 100644
--- a/dune/vtk/datacollectors/discontinuousdatacollector.hh
+++ b/dune/vtk/datacollectors/discontinuousdatacollector.hh
@@ -2,7 +2,7 @@
 
 #include <vector>
 
-#include <dune/vtk/forward.hh>
+#include <dune/grid/common/partitionset.hh>
 #include <dune/vtk/types.hh>
 
 #include "unstructureddatacollector.hh"
@@ -12,7 +12,7 @@ namespace Dune
   namespace Vtk
   {
     /// Implementation of \ref DataCollector for linear cells, with discontinuous data.
-    template <class GridView, class Partition>
+    template <class GridView, class Partition = Partitions::InteriorBorder>
     class DiscontinuousDataCollector
         : public UnstructuredDataCollectorInterface<GridView, DiscontinuousDataCollector<GridView,Partition>, Partition>
     {
diff --git a/dune/vtk/datacollectors/lagrangedatacollector.hh b/dune/vtk/datacollectors/lagrangedatacollector.hh
index 684c3d9890c95fca61c8088ddc8949e07b1a380f..243e1fba667b09daccc2b763d75da93725553251 100644
--- a/dune/vtk/datacollectors/lagrangedatacollector.hh
+++ b/dune/vtk/datacollectors/lagrangedatacollector.hh
@@ -6,8 +6,7 @@
 
 #include <dune/geometry/referenceelements.hh>
 #include <dune/grid/common/partitionset.hh>
-
-#include <dune/vtk/forward.hh>
+#include <dune/grid/common/partitionset.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/utility/lagrangepoints.hh>
 
@@ -31,7 +30,7 @@ namespace Dune
       using Super::partition; // NOTE: lagrange data-collector currently implemented for the All partition only
 
     public:
-      LagrangeDataCollector (GridView const& gridView, int order = (ORDER < 0 ? 2 : ORDER))
+      LagrangeDataCollector (GridView const& gridView, int order = ORDER)
         : Super(gridView)
         , order_(order)
       {
diff --git a/dune/vtk/datacollectors/quadraticdatacollector.hh b/dune/vtk/datacollectors/quadraticdatacollector.hh
index f4fdaeb040d47972f7ca44996892f0812dc011e3..e9c584d8c5dd976113e8ade0c1b702386925d42a 100644
--- a/dune/vtk/datacollectors/quadraticdatacollector.hh
+++ b/dune/vtk/datacollectors/quadraticdatacollector.hh
@@ -4,8 +4,6 @@
 
 #include <dune/geometry/referenceelements.hh>
 #include <dune/grid/common/partitionset.hh>
-
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/types.hh>
 
 #include "unstructureddatacollector.hh"
diff --git a/dune/vtk/datacollectors/spdatacollector.hh b/dune/vtk/datacollectors/spdatacollector.hh
index 0628d342950d0abbd419c3b175ca81c220fe8fd9..b4196198a473c2034cc94aa2d1f462583f6fd705 100644
--- a/dune/vtk/datacollectors/spdatacollector.hh
+++ b/dune/vtk/datacollectors/spdatacollector.hh
@@ -6,20 +6,15 @@
 #include <dune/common/filledarray.hh>
 #include <dune/common/fvector.hh>
 
+#include "structureddatacollector.hh"
+
 #if HAVE_DUNE_SPGRID
 #include <dune/grid/spgrid.hh>
-#endif
-
-#include <dune/vtk/forward.hh>
-
-#include "structureddatacollector.hh"
 
 namespace Dune
 {
   namespace Vtk
   {
-    #if HAVE_DUNE_SPGRID
-
     // Specialization for SPGrid
     template <class GridView>
     class SPDataCollector
@@ -99,7 +94,7 @@ namespace Dune
       };
     }
 
-    #endif // HAVE_DUNE_SPGRID
-
   } // end namespace Vtk
-} // end namespace Dune
+} // end namespace
+
+#endif // HAVE_DUNE_SPGRID
diff --git a/dune/vtk/datacollectors/structureddatacollector.hh b/dune/vtk/datacollectors/structureddatacollector.hh
index eb69931f439e00d357114b9da06f4ffc339ba0e5..f874a3e3e4daad32b4f78f3638ea5b5fdc84541c 100644
--- a/dune/vtk/datacollectors/structureddatacollector.hh
+++ b/dune/vtk/datacollectors/structureddatacollector.hh
@@ -4,8 +4,6 @@
 #include <vector>
 
 #include <dune/common/fvector.hh>
-
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/datacollectorinterface.hh>
 
 #include "continuousdatacollector.hh"
@@ -235,5 +233,16 @@ namespace Dune
     #endif
     };
 
+    namespace Impl
+    {
+      // Should be specialized for concrete structured grid
+      template <class GridView, class Grid>
+      struct StructuredDataCollectorImpl;
+    }
+
+    template <class GridView>
+    using StructuredDataCollector
+      = typename Impl::StructuredDataCollectorImpl<GridView, typename GridView::Grid>::type;
+
   } // end namespace Vtk
 } // end namespace Dune
diff --git a/dune/vtk/datacollectors/unstructureddatacollector.hh b/dune/vtk/datacollectors/unstructureddatacollector.hh
index 070177a8a207f5a67e7c92cee03fc5d4960383b3..add71be62a89c01e5633cd2b817c759d86ae7443 100644
--- a/dune/vtk/datacollectors/unstructureddatacollector.hh
+++ b/dune/vtk/datacollectors/unstructureddatacollector.hh
@@ -3,7 +3,7 @@
 #include <cstdint>
 #include <vector>
 
-#include <dune/vtk/forward.hh>
+#include <dune/grid/common/partitionset.hh>
 #include <dune/vtk/datacollectorinterface.hh>
 
 namespace Dune
@@ -17,7 +17,7 @@ namespace Dune
       std::vector<std::int64_t> connectivity;
     };
 
-    template <class GridView, class Derived, class Partition>
+    template <class GridView, class Derived, class Partition = Partitions::InteriorBorder>
     class UnstructuredDataCollectorInterface
         : public DataCollectorInterface<GridView, Derived, Partition>
     {
diff --git a/dune/vtk/datacollectors/yaspdatacollector.hh b/dune/vtk/datacollectors/yaspdatacollector.hh
index 196c921630f9bc34060f891a43ac5d06d8a0d1b7..b8476b53751dcd3d1881e53f31ccfb425dc46b06 100644
--- a/dune/vtk/datacollectors/yaspdatacollector.hh
+++ b/dune/vtk/datacollectors/yaspdatacollector.hh
@@ -7,12 +7,9 @@
 #include <dune/common/filledarray.hh>
 #include <dune/common/fvector.hh>
 #include <dune/common/std/type_traits.hh>
-
 #include <dune/grid/common/gridenums.hh>
 #include <dune/grid/yaspgrid.hh>
 
-#include <dune/vtk/forward.hh>
-
 #include "structureddatacollector.hh"
 
 namespace Dune
diff --git a/dune/vtk/filereader.hh b/dune/vtk/filereader.hh
index 8f021d7ae08c9c021f0c6b0a1bc52b7c364cfce8..b04676f9983422e3051897ba27c5469bc3a3d40f 100644
--- a/dune/vtk/filereader.hh
+++ b/dune/vtk/filereader.hh
@@ -6,7 +6,6 @@
 
 #include <dune/common/exceptions.hh>
 #include <dune/grid/common/gridfactory.hh>
-#include <dune/vtk/forward.hh>
 
 namespace Dune
 {
diff --git a/dune/vtk/filewriter.hh b/dune/vtk/filewriter.hh
index 840df5dc53f4866f496e6cacfded5cad0ac04cf0..657c2a337e0d058fe7c5c1c0edd2d459b69a015c 100644
--- a/dune/vtk/filewriter.hh
+++ b/dune/vtk/filewriter.hh
@@ -3,8 +3,6 @@
 #include <optional>
 #include <string>
 
-#include <dune/vtk/forward.hh>
-
 namespace Dune
 {
   namespace Vtk
diff --git a/dune/vtk/forward.hh b/dune/vtk/forward.hh
deleted file mode 100644
index eb90b64109807ce38f20c6b05d55632f17e14a4c..0000000000000000000000000000000000000000
--- a/dune/vtk/forward.hh
+++ /dev/null
@@ -1,112 +0,0 @@
-#pragma once
-
-#include <dune/grid/common/partitionset.hh>
-
-namespace Dune
-{
-  namespace Vtk
-  {
-    // forward declaration of all classes in dune-vtk
-
-    template <class GridView, class Derived, class Partition = Partitions::InteriorBorder>
-    class DataCollectorInterface;
-
-    // @{ datacollectors
-    template <class GridView, class Derived, class Partition = Partitions::InteriorBorder>
-    class UnstructuredDataCollectorInterface;
-
-    // @{ unstructured-datacollectors
-    template <class GridView, class Partition = Partitions::InteriorBorder>
-    class ContinuousDataCollector;
-
-    template <class GridView, class Partition = Partitions::InteriorBorder>
-    class DiscontinuousDataCollector;
-
-    template <class GridView>
-    class QuadraticDataCollector;
-    // @} unstructured-datacollectors
-
-    template <class GridView, class Derived>
-    class StructuredDataCollectorInterface;
-
-    namespace Impl
-    {
-      // Should be specialized for concrete structured grid
-      template <class GridView, class Grid>
-      struct StructuredDataCollectorImpl;
-    }
-
-    template <class GridView>
-    using StructuredDataCollector = typename Impl::StructuredDataCollectorImpl<GridView, typename GridView::Grid>::type;
-
-    // @{ structured-datacollectors
-    template <class GridView>
-    class SPDataCollector;
-
-    template <class GridView>
-    class YaspDataCollector;
-    // @} structured-datacollectors
-
-    // @} datacollectors
-
-    template <class Grid, class Derived>
-    class GridCreatorInterface;
-
-    template <class GridCreator, class Derived>
-    struct DerivedGridCreator;
-
-    // @{ gridcreators
-    template <class Grid>
-    struct ContinuousGridCreator;
-
-    template <class Grid>
-    struct DiscontinuousGridCreator;
-
-    template <class Grid>
-    struct ParallelGridCreator;
-
-    template <class Grid>
-    struct SerialGridCreator;
-
-    template <class Grid>
-    class LagrangeGridCreator;
-    // @} gridcreators
-
-
-    template <class Grid, class FilerReaderImp>
-    class FileReader;
-
-    class FileWriter;
-
-  } //end namespace Vtk
-
-  // @{ filewriters
-  template <class VtkWriter>
-  class PvdWriter;
-
-  template <class VtkWriter>
-  class VtkTimeseriesWriter;
-
-  template <class GridView, class DataCollector>
-  class VtkWriterInterface;
-
-  // @{ vtkwriters
-  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
-  class VtkImageDataWriter;
-
-  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
-  class VtkRectilinearGridWriter;
-
-  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
-  class VtkStructuredGridWriter;
-
-  template <class GridView, class DataCollector = Vtk::ContinuousDataCollector<GridView>>
-  class VtkUnstructuredGridWriter;
-  // @} vtkwriters
-
-  // @} filewriters
-
-  template <class Grid, class GridCreator = Vtk::ContinuousGridCreator<Grid>>
-  class VtkReader;
-
-} // end namespace Dune
diff --git a/dune/vtk/gridcreatorinterface.hh b/dune/vtk/gridcreatorinterface.hh
index 93c68245a118b2baf906b9a9cc5ef0092ee7a5ce..a92e88bdcf637ac426ee7920953dce56f16d6e78 100644
--- a/dune/vtk/gridcreatorinterface.hh
+++ b/dune/vtk/gridcreatorinterface.hh
@@ -8,8 +8,6 @@
 #include <dune/common/parallel/mpihelper.hh>
 #include <dune/grid/common/gridfactory.hh>
 
-#include <dune/vtk/forward.hh>
-
 namespace Dune
 {
   namespace Vtk
diff --git a/dune/vtk/gridcreators/common.hh b/dune/vtk/gridcreators/common.hh
index 6031cec47d2c8ee006fb38791408b39007970b63..c5dd16e114d7acc1be9d802ea98378ee7ae665ae 100644
--- a/dune/vtk/gridcreators/common.hh
+++ b/dune/vtk/gridcreators/common.hh
@@ -6,7 +6,6 @@ namespace Dune
 {
   namespace Vtk
   {
-
     template <class Factory, class... Args>
     using HasInsertVertex = decltype( std::declval<Factory>().insertVertex(std::declval<Args>()...) );
 
diff --git a/dune/vtk/gridcreators/derivedgridcreator.hh b/dune/vtk/gridcreators/derivedgridcreator.hh
index 38b2ff97a28d50ce2947008ca27475d9ca785c94..946aee644d206c991ad2c542085b4e0915fccd4a 100644
--- a/dune/vtk/gridcreators/derivedgridcreator.hh
+++ b/dune/vtk/gridcreators/derivedgridcreator.hh
@@ -5,7 +5,6 @@
 #include <vector>
 
 #include <dune/grid/common/gridfactory.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/gridcreatorinterface.hh>
 #include <dune/vtk/gridcreators/common.hh>
 #include <dune/vtk/gridcreators/continuousgridcreator.hh>
diff --git a/dune/vtk/gridcreators/discontinuousgridcreator.hh b/dune/vtk/gridcreators/discontinuousgridcreator.hh
index 086a9fb04865b112da71ca86925b4883532f99f5..ca4d29c70b95d208d5ce06da8ab63c1716bcdc1e 100644
--- a/dune/vtk/gridcreators/discontinuousgridcreator.hh
+++ b/dune/vtk/gridcreators/discontinuousgridcreator.hh
@@ -11,6 +11,7 @@
 
 #include <dune/vtk/types.hh>
 #include <dune/vtk/gridcreatorinterface.hh>
+
 namespace Dune
 {
   namespace Vtk
diff --git a/dune/vtk/gridcreators/lagrangegridcreator.hh b/dune/vtk/gridcreators/lagrangegridcreator.hh
index 445702aae2db92c41d53cb189a22f1154419878a..bbe6010b3ad6c321eed8ded565680c67b69bb318 100644
--- a/dune/vtk/gridcreators/lagrangegridcreator.hh
+++ b/dune/vtk/gridcreators/lagrangegridcreator.hh
@@ -13,7 +13,6 @@
 #include <dune/localfunctions/lagrange.hh>
 #include <dune/grid/common/gridfactory.hh>
 
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/gridcreatorinterface.hh>
 #include <dune/vtk/utility/lagrangepoints.hh>
diff --git a/dune/vtk/gridcreators/parallelgridcreator.hh b/dune/vtk/gridcreators/parallelgridcreator.hh
index 89c4584b2815b6ab8ee77ef3a95b57f604857576..164a09e8e6a99f58a1d6e2fb10fae08b73934cb4 100644
--- a/dune/vtk/gridcreators/parallelgridcreator.hh
+++ b/dune/vtk/gridcreators/parallelgridcreator.hh
@@ -5,7 +5,6 @@
 #include <vector>
 
 #include <dune/grid/common/gridfactory.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/gridcreatorinterface.hh>
 #include <dune/vtk/gridcreators/common.hh>
 #include <dune/vtk/gridcreators/derivedgridcreator.hh>
diff --git a/dune/vtk/gridcreators/serialgridcreator.hh b/dune/vtk/gridcreators/serialgridcreator.hh
index f438fdad0215afebd6ebf31e7a03cfc494fd8d23..de9814954357e4380d12d283cc94992f4972bb46 100644
--- a/dune/vtk/gridcreators/serialgridcreator.hh
+++ b/dune/vtk/gridcreators/serialgridcreator.hh
@@ -5,7 +5,6 @@
 #include <vector>
 
 #include <dune/grid/common/gridfactory.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/gridcreatorinterface.hh>
 #include <dune/vtk/gridcreators/discontinuousgridcreator.hh>
 
diff --git a/dune/vtk/pvdwriter.hh b/dune/vtk/pvdwriter.hh
index a3d78ecb7250208247be225154fb9982112a86d0..fd1a168b53c8e25ec5a020c2b3b75e8580773969 100644
--- a/dune/vtk/pvdwriter.hh
+++ b/dune/vtk/pvdwriter.hh
@@ -8,7 +8,6 @@
 
 #include <dune/vtk/types.hh>
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 
 namespace Dune
 {
diff --git a/dune/vtk/vtkreader.hh b/dune/vtk/vtkreader.hh
index ea4ded7e57bb04bbe5304a1fdd4e95c09f4fe30a..e5f683a92a8e09960e66d2ad070a76dddab664b4 100644
--- a/dune/vtk/vtkreader.hh
+++ b/dune/vtk/vtkreader.hh
@@ -9,7 +9,6 @@
 #include <dune/common/typeutilities.hh>
 
 #include <dune/vtk/filereader.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/types.hh>
 
 // default GridCreator
@@ -22,9 +21,13 @@ namespace Dune
    * Reads .vtu files and constructs a grid from the cells stored in the file
    * Additionally, stored data can be read.
    *
+   * \tparam Grid         Type of the grid to construct.
+   * \tparam GridCreator  Policy type to control what to pass to a grid factory with
+   *                      data given from the file. [ContinuousGridCreator]
+   *
    * Assumption on the file structure: Each XML tag must be on a separate line.
    **/
-  template <class Grid, class GridCreator>
+  template <class Grid, class GridCreator = Vtk::ContinuousGridCreator<Grid>>
   class VtkReader
       : public Vtk::FileReader<Grid, VtkReader<Grid, GridCreator>>
   {
diff --git a/dune/vtk/vtktimeserieswriter.hh b/dune/vtk/vtktimeserieswriter.hh
index 039244508d0b52fbf944944083c7815f8aa4967b..5bbd8c087c13275bbf01cc608849fb19a32d0679 100644
--- a/dune/vtk/vtktimeserieswriter.hh
+++ b/dune/vtk/vtktimeserieswriter.hh
@@ -7,7 +7,6 @@
 #include <vector>
 
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/utility/filesystem.hh>
 #include <dune/vtk/utility/uid.hh>
diff --git a/dune/vtk/vtkwriter.hh b/dune/vtk/vtkwriter.hh
index 05b437c05fb860abfbee6242ff64634d24c841dc..322a10663b4fcebefc6f4a5c497305236903b04b 100644
--- a/dune/vtk/vtkwriter.hh
+++ b/dune/vtk/vtkwriter.hh
@@ -12,7 +12,6 @@
 
 #include <dune/grid/geometrygrid.hh>
 #include <dune/grid/yaspgrid.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/datacollectors/yaspdatacollector.hh>
 
 namespace Dune
diff --git a/dune/vtk/vtkwriterinterface.hh b/dune/vtk/vtkwriterinterface.hh
index 7ef3e1e6894d01e62143eca3ee486e3b413bfb1a..8aa682b1bff1c48707d9675925901da4a7730013 100644
--- a/dune/vtk/vtkwriterinterface.hh
+++ b/dune/vtk/vtkwriterinterface.hh
@@ -9,7 +9,6 @@
 
 #include <dune/common/parallel/mpihelper.hh>
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/function.hh>
 #include <dune/vtk/types.hh>
 
diff --git a/dune/vtk/writers/vtkimagedatawriter.hh b/dune/vtk/writers/vtkimagedatawriter.hh
index c0d4e45e21f76b7d916e85237f5a5678c4c427bc..599d74182f42a1b1a4bf66d44d55216c2417f091 100644
--- a/dune/vtk/writers/vtkimagedatawriter.hh
+++ b/dune/vtk/writers/vtkimagedatawriter.hh
@@ -5,7 +5,6 @@
 #include <map>
 
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/function.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/datacollectors/structureddatacollector.hh>
@@ -19,7 +18,7 @@ namespace Dune
    * Requirement:
    * - DataCollector must be a model of \ref StructuredDataCollector
    **/
-  template <class GridView, class DataCollector>
+  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
   class VtkImageDataWriter
       : public VtkWriterInterface<GridView, DataCollector>
   {
diff --git a/dune/vtk/writers/vtkrectilineargridwriter.hh b/dune/vtk/writers/vtkrectilineargridwriter.hh
index af88be7928da7148c14a683a5033b950b72f6210..644916986d1a3df2fe3055aa0ddc8ab350c0d459 100644
--- a/dune/vtk/writers/vtkrectilineargridwriter.hh
+++ b/dune/vtk/writers/vtkrectilineargridwriter.hh
@@ -5,7 +5,6 @@
 #include <map>
 
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/function.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/datacollectors/structureddatacollector.hh>
@@ -19,7 +18,7 @@ namespace Dune
    * Requirement:
    * - DataCollector must be a model of \ref StructuredDataCollector
    **/
-  template <class GridView, class DataCollector>
+  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
   class VtkRectilinearGridWriter
       : public VtkWriterInterface<GridView, DataCollector>
   {
diff --git a/dune/vtk/writers/vtkstructuredgridwriter.hh b/dune/vtk/writers/vtkstructuredgridwriter.hh
index c0b37d366935b57bd14ba16d984fe9530a5b295b..e9026a9999e814aa0aa7d52517fa1fa649c431f3 100644
--- a/dune/vtk/writers/vtkstructuredgridwriter.hh
+++ b/dune/vtk/writers/vtkstructuredgridwriter.hh
@@ -5,7 +5,6 @@
 #include <map>
 
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/function.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/datacollectors/structureddatacollector.hh>
@@ -19,7 +18,7 @@ namespace Dune
    * Requirement:
    * - DataCollector must be a model of \ref StructuredDataCollector
    **/
-  template <class GridView, class DataCollector>
+  template <class GridView, class DataCollector = Vtk::StructuredDataCollector<GridView>>
   class VtkStructuredGridWriter
       : public VtkWriterInterface<GridView, DataCollector>
   {
diff --git a/dune/vtk/writers/vtkunstructuredgridwriter.hh b/dune/vtk/writers/vtkunstructuredgridwriter.hh
index 8bd16aa190f9062205dac9b29c9d9f37520ef043..5517f409d13feebe77d9aed598b2a40cfb8407be 100644
--- a/dune/vtk/writers/vtkunstructuredgridwriter.hh
+++ b/dune/vtk/writers/vtkunstructuredgridwriter.hh
@@ -5,7 +5,6 @@
 #include <map>
 
 #include <dune/vtk/filewriter.hh>
-#include <dune/vtk/forward.hh>
 #include <dune/vtk/function.hh>
 #include <dune/vtk/types.hh>
 #include <dune/vtk/datacollectors/continuousdatacollector.hh>
@@ -19,7 +18,7 @@ namespace Dune
    * Requirement:
    * - DataCollector must be a model of \ref DataCollector
    **/
-  template <class GridView, class DataCollector>
+  template <class GridView, class DataCollector = Vtk::ContinuousDataCollector<GridView>>
   class VtkUnstructuredGridWriter
       : public VtkWriterInterface<GridView, DataCollector>
   {