diff --git a/dune/fufem/assemblers/assembler.hh b/dune/fufem/assemblers/assembler.hh
index 3de0ad76b374ca452a08e0981e54fc0a0c8b534d..e410628972af7772d98809d00a69666519656383 100644
--- a/dune/fufem/assemblers/assembler.hh
+++ b/dune/fufem/assemblers/assembler.hh
@@ -19,7 +19,7 @@ class Assembler
         {}
 
         template <class LocalAssemblerType, class GlobalMatrixType>
-        void assembleOperator(LocalAssemblerType& localAssembler, GlobalMatrixType& A, const bool lumping=false) const
+        void assembleOperator(LocalAssemblerType&& localAssembler, GlobalMatrixType& A, const bool lumping=false) const
         {
             const OperatorAssembler<TrialBasis, AnsatzBasis> operatorAssembler(tBasis_, aBasis_);
             operatorAssembler.assemble(localAssembler, A, lumping);
@@ -47,5 +47,10 @@ class Assembler
         const AnsatzBasis& aBasis_;
 };
 
+template <class TrialBasis, class AnsatzBasis>
+auto assembler(const TrialBasis& tBasis, const AnsatzBasis& aBasis) {
+  return Assembler<TrialBasis, AnsatzBasis>(tBasis, aBasis);
+}
+
 #endif
 
diff --git a/dune/fufem/assemblers/localassemblers/scaledsumoperatorassembler.hh b/dune/fufem/assemblers/localassemblers/scaledsumoperatorassembler.hh
index c40aaf0d4800c0d38de5c7c5b133283f85fb810a..836f2583451ed0a43ce06c9717273e1e7234c651 100644
--- a/dune/fufem/assemblers/localassemblers/scaledsumoperatorassembler.hh
+++ b/dune/fufem/assemblers/localassemblers/scaledsumoperatorassembler.hh
@@ -1,16 +1,17 @@
-// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
+// -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
 // vi: set et ts=4 sw=2 sts=2:
 
 #ifndef DUNE_FUFEM_ASSEMBLERS_LOCALASSEMBLERS_SCALEDSUMOPERATORASSEMBLER_HH
 #define DUNE_FUFEM_ASSEMBLERS_LOCALASSEMBLERS_SCALEDSUMOPERATORASSEMBLER_HH
 
-#include <dune/common/diagonalmatrix.hh>
+#include <dune/common/fmatrix.hh>
 #include <dune/fufem/assemblers/localoperatorassembler.hh>
 
 /** \brief Local operator that is the sum of scaled local operator assemblers.
  *  All template parameters according to \class LocalOperatorAssembler
  */
-template <class Grid, class TrialLocalFE, class AnsatzLocalFE, typename T>
+template <class Grid, class TrialLocalFE, class AnsatzLocalFE,
+          typename T = Dune::FieldMatrix<double, 1, 1>>
 class ScaledSumOperatorAssembler
     : public LocalOperatorAssembler<Grid, TrialLocalFE, AnsatzLocalFE, T> {
 public:
diff --git a/dune/fufem/assemblers/localassemblers/subgridl2functionalassembler.hh b/dune/fufem/assemblers/localassemblers/subgridl2functionalassembler.hh
index 93f066ebae6fd0b04a68fbb8a873ac3d29feb586..b7e3482427016c2a041a67908f8eb9c3e49146f7 100644
--- a/dune/fufem/assemblers/localassemblers/subgridl2functionalassembler.hh
+++ b/dune/fufem/assemblers/localassemblers/subgridl2functionalassembler.hh
@@ -17,6 +17,7 @@
 #include <dune/fufem/assemblers/localfunctionalassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/l2functionalassembler.hh>
 
+#include <dune/grid/common/rangegenerators.hh>
 /**  \brief Local assembler for finite element L^2-functionals on the Subgrid, given by Hostgrid-functions
   *
   *  This is needed, e.g. when assembling the right hand side of the spatial problem of a time-discretized time dependent problem with spatial adaptivity.
diff --git a/dune/fufem/assemblers/localoperatorassembler.hh b/dune/fufem/assemblers/localoperatorassembler.hh
index 0066dc1d140710a12652391c6369ed68971f06e9..22ef6121d4a12d7aaae9236f65eff023ba0c13ac 100644
--- a/dune/fufem/assemblers/localoperatorassembler.hh
+++ b/dune/fufem/assemblers/localoperatorassembler.hh
@@ -30,6 +30,8 @@ class LocalOperatorAssembler
 
         enum {ndofs = T::cols};
 
+        virtual ~LocalOperatorAssembler() {}
+
         /** \brief After return BoolMatrix isNonZero contains the bit pattern of coupling basis functions
          *
          *  \param element the grid element on which to operate
diff --git a/dune/fufem/estimators/refinementindicator.hh b/dune/fufem/estimators/refinementindicator.hh
index c2d52191eca741747572635a01751de185180487..ef3ed917980ca9292acac8be07bb5e268efa4440 100644
--- a/dune/fufem/estimators/refinementindicator.hh
+++ b/dune/fufem/estimators/refinementindicator.hh
@@ -118,4 +118,9 @@ value (const Element& element, unsigned int codim, unsigned int subEntity) const
     return (indicatorEntry != indicators_[codim].end()) ? indicatorEntry->second : 0;
 }
 
+template <class Grid>
+auto makeRefinementIndicator(const Grid& grid) {
+  return RefinementIndicator<Grid>(grid);
+}
+
 #endif
diff --git a/dune/fufem/makering.hh b/dune/fufem/makering.hh
index d83f5c396f1416dc1be6bb6daef46913642343d4..c52ad4788b919e9e71614a108083888cf035f29b 100644
--- a/dune/fufem/makering.hh
+++ b/dune/fufem/makering.hh
@@ -705,7 +705,7 @@ std::unique_ptr<GridType> makeTorus(
     // if ring is closed last nodes are the first nodes
 
     std::vector<unsigned int> cornerIDs(4);
-    Dune::GeometryType gt;gt.makeTetrahedron();
+    auto gt = Dune::GeometryTypes::tetrahedron;
 
     for (unsigned int i=0; i<nElementHorizontal-1; i++) {