diff --git a/dumux/io/staggeredvtkoutputmodule.hh b/dumux/io/staggeredvtkoutputmodule.hh
index 47b9d0019c35b14ef9f8ae87208b473b9dbb7c2a..d779ce7cacb0de3cf4d66c0d74708cbc464d8d83 100644
--- a/dumux/io/staggeredvtkoutputmodule.hh
+++ b/dumux/io/staggeredvtkoutputmodule.hh
@@ -65,6 +65,17 @@ class StaggeredVtkOutputModule : public VtkOutputModuleBase<TypeTag>
     struct PriVarScalarDataInfo { unsigned int pvIdx; std::string name; };
     struct PriVarVectorDataInfo { std::vector<unsigned int> pvIdx; std::string name; };
 
+    using Positions = std::vector<Scalar>;
+    using Data = std::vector<std::vector<Scalar>>;
+
+    struct BundleOfTypes
+    {
+        using Positions = StaggeredVtkOutputModule::Positions;
+        using PriVarScalarDataInfo = StaggeredVtkOutputModule::PriVarScalarDataInfo;
+        using PriVarVectorDataInfo = StaggeredVtkOutputModule::PriVarVectorDataInfo;
+        using Data = StaggeredVtkOutputModule::Data;
+    };
+
 public:
 
     StaggeredVtkOutputModule(const Problem& problem,
@@ -97,11 +108,9 @@ public:
     void write(double time, Dune::VTK::OutputType type = Dune::VTK::ascii)
     {
         ParentType::write(time, type);
-        // faceWriter_.write(facePriVarScalarDataInfo_, facePriVarVectorDataInfo_);
-        getData_();
+        getFaceDataAndWrite_();
     }
 
-
 protected:
     unsigned int numDofs_() const
     {
@@ -116,16 +125,16 @@ protected:
 
 private:
 
-    void getData_()
+    void getFaceDataAndWrite_()
     {
         const int numPoints = this->problem().model().numFaceDofs();
 
         // get fields for all primary coordinates and variables
         std::vector<bool> dofVisited(numPoints, false);
-        std::vector<Scalar> positions(numPoints*3);
-        std::vector<std::vector<Scalar>> priVarScalarData(facePriVarScalarDataInfo_.size(), std::vector<Scalar>(numPoints));
+        Positions positions(numPoints*3);
+        Data priVarScalarData(facePriVarScalarDataInfo_.size(), std::vector<Scalar>(numPoints));
 
-        std::vector<std::vector<Scalar>> priVarVectorData(facePriVarVectorDataInfo_.size());
+        Data priVarVectorData(facePriVarVectorDataInfo_.size());
         for (std::size_t i = 0; i < facePriVarVectorDataInfo_.size(); ++i)
             priVarVectorData[i].resize(numPoints*facePriVarVectorDataInfo_[i].pvIdx.size());
 
@@ -148,7 +157,7 @@ private:
     }
 
     template<class Facet>
-    void getPositions_(std::vector<Scalar>& positions, const Facet& facet)
+    void getPositions_(Positions& positions, const Facet& facet)
     {
         const int dofIdxGlobal = facet.dofIndexSelf();
         auto pos = facet.center();
@@ -173,7 +182,7 @@ private:
     }
 
     template<class Facet>
-    void getScalarData_(std::vector<std::vector<Scalar>>& priVarScalarData, const Facet& facet)
+    void getScalarData_(Data& priVarScalarData, const Facet& facet)
     {
         const int dofIdxGlobal = facet.dofIndexSelf();
         for(int pvIdx = 0; pvIdx < facePriVarScalarDataInfo_.size(); ++pvIdx)
@@ -183,7 +192,7 @@ private:
     }
 
     template<class Facet>
-    void getVectorData_(std::vector<std::vector<Scalar>>& priVarVectorData, const Facet& facet)
+    void getVectorData_(Data& priVarVectorData, const Facet& facet)
     {
 
         // const int dofIdxGlobal = this->problem().gridView().indexSet().index(facet);
@@ -201,7 +210,7 @@ private:
     }
 
 
-    StaggeredVtkWriter<TypeTag, std::vector<PriVarScalarDataInfo>, std::vector<PriVarVectorDataInfo>> faceWriter_;
+    StaggeredVtkWriter<TypeTag, BundleOfTypes> faceWriter_;
     std::vector<PriVarScalarDataInfo> facePriVarScalarDataInfo_;
     std::vector<PriVarVectorDataInfo> facePriVarVectorDataInfo_;
 };
diff --git a/dumux/io/staggeredvtkwriter.hh b/dumux/io/staggeredvtkwriter.hh
index a8a7e28f70b0276adb89672ace81878560094d50..21fb940259c507f8d4958decabd0e282309b98ad 100644
--- a/dumux/io/staggeredvtkwriter.hh
+++ b/dumux/io/staggeredvtkwriter.hh
@@ -46,7 +46,7 @@ namespace Dumux
  * initialization and/or be turned on/off using the designated properties. Additionally
  * non-standardized scalar and vector fields can be added to the writer manually.
  */
-template<class TypeTag, class ScalarInfo, class VectorInfo>
+template<class TypeTag, class BundleOfTypes>
 class StaggeredVtkWriter
 {
     using Problem = typename GET_PROP_TYPE(TypeTag, Problem);
@@ -63,12 +63,16 @@ class StaggeredVtkWriter
     static constexpr unsigned int precision = 6;
     static constexpr unsigned int numBeforeLineBreak = 15;
 
+    using ScalarInfo = std::vector<typename BundleOfTypes::PriVarScalarDataInfo>;
+    using VectorInfo = std::vector<typename BundleOfTypes::PriVarVectorDataInfo>;
+    using Positions = typename BundleOfTypes::Positions;
+    using Data = typename BundleOfTypes::Data;
+
 public:
     StaggeredVtkWriter(const Problem& problem) : problem_(problem)
     {}
 
-    template<class ScalarData, class VectorData, class Positions>
-    void write(const ScalarData& priVarScalarData, const VectorData& priVarVectorData, const Positions& positions,
+    void write(const Data& priVarScalarData, const Data& priVarVectorData, const Positions& positions,
                const ScalarInfo& scalarInfo, const VectorInfo& vectorInfo)
     {
         if(scalarInfo.empty() && vectorInfo.empty())
@@ -89,8 +93,7 @@ private:
         file_ << header;
     }
 
-    template<class ScalarData, class VectorData, class Positions>
-    void write_(const ScalarData& priVarScalarData, const VectorData& priVarVectorData, const Positions& positions,
+    void write_(const Data& priVarScalarData, const Data& priVarVectorData, const Positions& positions,
                const ScalarInfo& scalarInfo, const VectorInfo& vectorInfo)
     {
         const int numPoints = problem_.model().numFaceDofs();
@@ -124,7 +127,7 @@ private:
         file_ << "</VTKFile>";
     }
 
-    void writeCoordinates_(const std::vector<Scalar>& positions)
+    void writeCoordinates_(const Positions& positions)
     {
         // write the positions to the file
         file_ << "<Points>\n";
@@ -144,7 +147,7 @@ private:
         file_ << "</Points>\n";
     }
 
-    void writeScalarFacePriVars_(const std::vector<std::vector<Scalar>>& priVarScalarData, const ScalarInfo& info)
+    void writeScalarFacePriVars_(const Data& priVarScalarData, const ScalarInfo& info)
     {
         // write the priVars to the file
         for(int pvIdx = 0; pvIdx < info.size(); ++pvIdx)
@@ -165,7 +168,7 @@ private:
         }
     }
 
-    void writeVectorFacePriVars_(const std::vector<std::vector<Scalar>>& priVarVectorData, const VectorInfo& info)
+    void writeVectorFacePriVars_(const Data& priVarVectorData, const VectorInfo& info)
     {
         // write the priVars to the file
         for(int i = 0; i < info.size(); ++i)