diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 3977d10272314b83da768b9dd1140f54ac4d6f90..b7e2a0fa9a3f613d9d30ec1b99103014773b2d66 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -46,13 +46,12 @@
 #include <dune/istl/bvector.hh>
 #include <dune/istl/scaledidmatrix.hh>
 
-#include <dune/fufem/assemblers/functionalassembler.hh>
+#include <dune/fufem/assemblers/assembler.hh>
 #include <dune/fufem/assemblers/localassemblers/boundarymassassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/l2functionalassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/massassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh>
 #include <dune/fufem/assemblers/localassemblers/vonmisesstressassembler.hh>
-#include <dune/fufem/assemblers/operatorassembler.hh>
 #include <dune/fufem/boundarypatch.hh>
 #include <dune/fufem/dunepython.hh>
 #include <dune/fufem/functions/basisgridfunction.hh>
@@ -204,6 +203,8 @@ int main(int argc, char *argv[]) {
     typedef P1NodalBasis<GridView, double> P1Basis;
     P0Basis const p0Basis(leafView);
     P1Basis const p1Basis(leafView);
+    Assembler<P0Basis, P0Basis> const p0Assembler(p0Basis, p0Basis);
+    Assembler<P1Basis, P1Basis> const p1Assembler(p1Basis, p1Basis);
 
     // Set up the boundary
     Dune::BitSetVector<dims> ignoreNodes(finestSize, false);
@@ -260,8 +261,7 @@ int main(int argc, char *argv[]) {
         MassAssembler<GridType, P1Basis::LocalFiniteElement,
                       P1Basis::LocalFiniteElement,
                       Dune::ScaledIdentityMatrix<double, dims>> const localMass;
-        OperatorAssembler<P1Basis, P1Basis>(p1Basis, p1Basis)
-            .assemble(localMass, massMatrix);
+        p1Assembler.assembleOperator(localMass, massMatrix);
         massMatrix *= density;
       }
       {
@@ -286,8 +286,8 @@ int main(int argc, char *argv[]) {
             weightedGravitationalDirection);
         L2FunctionalAssembler<GridType, SmallVector> gravityFunctionalAssembler(
             gravityFunction);
-        FunctionalAssembler<P1Basis>(p1Basis)
-            .assemble(gravityFunctionalAssembler, gravityFunctional, true);
+        p1Assembler.assembleFunctional(gravityFunctionalAssembler,
+                                       gravityFunctional);
       }
     }
     SingletonVectorType surfaceNormalStress(finestSize);
@@ -300,8 +300,7 @@ int main(int argc, char *argv[]) {
       StVenantKirchhoffAssembler<GridType, P1Basis::LocalFiniteElement,
                                  P1Basis::LocalFiniteElement> const
       localStiffness(E, nu);
-      OperatorAssembler<P1Basis, P1Basis>(p1Basis, p1Basis)
-          .assemble(localStiffness, stiffnessMatrix);
+      p1Assembler.assembleOperator(localStiffness, stiffnessMatrix);
     }
 
     SingletonMatrixType frictionalBoundaryMassMatrix;
@@ -315,9 +314,8 @@ int main(int argc, char *argv[]) {
           GridType, BoundaryPatch<GridView>, P1Basis::LocalFiniteElement,
           P1Basis::LocalFiniteElement, SmallSingletonMatrix> const
       frictionalBoundaryMassAssembler(frictionalBoundary);
-
-      OperatorAssembler<P1Basis, P1Basis>(p1Basis, p1Basis).assemble(
-          frictionalBoundaryMassAssembler, frictionalBoundaryMassMatrix);
+      p1Assembler.assembleOperator(frictionalBoundaryMassAssembler,
+                                   frictionalBoundaryMassMatrix);
     }
     SumNorm<VectorType> const velocityEnergyNorm(1.0, stiffnessMatrixNorm, 1.0,
                                                  massMatrixNorm);
@@ -509,8 +507,7 @@ int main(int argc, char *argv[]) {
                 p1Basis, u);
         VonMisesStressAssembler<GridType> localStressAssembler(
             E, nu, gridDisplacement);
-        FunctionalAssembler<P0Basis>(p0Basis)
-            .assemble(localStressAssembler, vonMisesStress, true);
+        p0Assembler.assembleFunctional(localStressAssembler, vonMisesStress);
 
         writeVtk<P1Basis, P0Basis, VectorType, SingletonVectorType, GridView>(
             p1Basis, u, alpha, p0Basis, vonMisesStress, leafView,