diff --git a/src/05-poisson-problem.hh b/src/05-poisson-problem.hh
index f1fbabc3989fbfe33f8a8f846248e44802a9d338..424e465c5a662dda181592a1104dab0dc344ad88 100644
--- a/src/05-poisson-problem.hh
+++ b/src/05-poisson-problem.hh
@@ -129,18 +129,17 @@ void assembleLocalRHS(
 }
 
 
-template<class GridView, class RHSFunction>
+template<class GridView, class Matrix, class Vector, class RHSFunction>
 void assemblePoissonProblemPQ1(
     const GridView& gridView,
-    Dune::BCRSMatrix<double>& matrix,
-    Dune::BlockVector<double>& rhs,
+    Matrix& matrix,
+    Vector& rhs,
     const RHSFunction& rhsFunction)
 {
   static const int dim = GridView::dimension;
   const auto& indexSet = gridView.indexSet();
   std::size_t size = indexSet.size(dim);
 
-  using Matrix = Dune::BCRSMatrix<double>;
   using ElementMatrix = Dune::Matrix<double>;
   using ElementRhs = Dune::BlockVector<double>;