diff --git a/src/friction_writer.cc b/src/friction_writer.cc
index 22cfe296f887343a1fb0121cd111e1d02ad51455..8dba3a93eb3bce4e86524ad5f0d7f056e0965330 100644
--- a/src/friction_writer.cc
+++ b/src/friction_writer.cc
@@ -4,26 +4,27 @@
 
 #include "friction_writer.hh"
 
-template <class BitVector>
-FrictionWriter<BitVector>::FrictionWriter(BitVector const &_boundaryNodes)
+template <class ScalarVector, class Vector>
+FrictionWriter<ScalarVector, Vector>::FrictionWriter(
+    Dune::BitSetVector<1> const &_boundaryNodes)
     : coefficientWriter("coefficients", std::fstream::out),
       displacementWriter("displacements", std::fstream::out),
       stateWriter("states", std::fstream::out),
       velocityWriter("velocities", std::fstream::out),
       boundaryNodes(_boundaryNodes) {}
 
-template <class BitVector> FrictionWriter<BitVector>::~FrictionWriter() {
+template <class ScalarVector, class Vector>
+FrictionWriter<ScalarVector, Vector>::~FrictionWriter() {
   stateWriter.close();
   displacementWriter.close();
   velocityWriter.close();
   coefficientWriter.close();
 }
 
-template <class BitVector>
 template <class ScalarVector, class Vector>
-void FrictionWriter<BitVector>::writeInfo(ScalarVector const &coefficient,
-                                          ScalarVector const &alpha,
-                                          Vector const &u, Vector const &v) {
+void FrictionWriter<ScalarVector, Vector>::writeInfo(
+    ScalarVector const &coefficient, ScalarVector const &alpha, Vector const &u,
+    Vector const &v) {
   for (size_t i = 0; i < boundaryNodes.size(); ++i) {
     if (!boundaryNodes[i][0])
       continue;
diff --git a/src/friction_writer.hh b/src/friction_writer.hh
index 7494b890537a9eb8f83af0828fdec2ee4ea386d8..dbd283497718867787db17138763904150362e10 100644
--- a/src/friction_writer.hh
+++ b/src/friction_writer.hh
@@ -3,13 +3,14 @@
 
 #include <fstream>
 
-template <class BitVector> class FrictionWriter {
+#include <dune/common/bitsetvector.hh>
+
+template <class ScalarVector, class Vector> class FrictionWriter {
 public:
-  FrictionWriter(BitVector const &_boundaryNodes);
+  FrictionWriter(Dune::BitSetVector<1> const &_boundaryNodes);
 
   ~FrictionWriter();
 
-  template <class ScalarVector, class Vector>
   void writeInfo(ScalarVector const &coefficient, ScalarVector const &alpha,
                  Vector const &u, Vector const &v);
 
@@ -18,6 +19,6 @@ template <class BitVector> class FrictionWriter {
   std::fstream displacementWriter;
   std::fstream stateWriter;
   std::fstream velocityWriter;
-  BitVector const &boundaryNodes;
+  Dune::BitSetVector<1> const &boundaryNodes;
 };
 #endif
diff --git a/src/friction_writer_tmpl.cc b/src/friction_writer_tmpl.cc
index 9a95b2611f6977c56650d6018cfa92514caa1c00..6b50b0f6efe8724233ca3bc992063332317a60f4 100644
--- a/src/friction_writer_tmpl.cc
+++ b/src/friction_writer_tmpl.cc
@@ -2,14 +2,6 @@
 #error DIM unset
 #endif
 
-#include <dune/common/bitsetvector.hh>
-
 #include "explicitvectors.hh"
 
-using BitVector = Dune::BitSetVector<1>;
-
-template class FrictionWriter<BitVector>;
-
-template void FrictionWriter<BitVector>::writeInfo(
-    ScalarVector const &coefficient, ScalarVector const &alpha, Vector const &u,
-    Vector const &v);
+template class FrictionWriter<ScalarVector, Vector>;
diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 0a10471c91cdb280817eebd6ad6c3a99c337ad48..935bf3aa7cc296b5d2d94c353f7426ead503f20a 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -269,7 +269,7 @@ int main(int argc, char *argv[]) {
                          parset.sub("a0.solver"));
     }
     // }}}
-    FrictionWriter<Dune::BitSetVector<1>> writer(frictionalNodes);
+    FrictionWriter<ScalarVector, Vector> writer(frictionalNodes);
     {
       ScalarVector c;
       myGlobalNonlinearity->coefficientOfFriction(v_initial, c);