diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc
index 7da8b25a73295c6cd4278359d690697cfbafc4f1..fddc9712be05582b4f871d8e0c769581cebb49d3 100644
--- a/src/one-body-sample.cc
+++ b/src/one-body-sample.cc
@@ -187,15 +187,12 @@ int main() {
         leafView, p1Basis, frictionalNodes, nodalIntegrals);
 
     for (size_t run = 1; run <= runs; ++run) {
-      f = 0;
-      VectorType neumannTerm(grid.size(grid.maxLevel(), dim));
+      // f = neumann
       assemble_neumann<GridType, GridType::LeafGridView, SmallVector, P1Basis>(
-          leafView, p1Basis, neumannNodes, neumannTerm);
-      f += neumannTerm;
+          leafView, p1Basis, neumannNodes, f);
 
-      VectorType updateTerm(grid.size(grid.maxLevel(), dim));
-      stiffnessMatrix.mv(u1, updateTerm);
-      f += updateTerm;
+      // f += linear update
+      stiffnessMatrix.umv(u1, f);
 
       // {{{ Assemble terms for the nonlinearity
       // TODO: Random value