diff --git a/src/one-body-sample.org b/src/one-body-sample.org
index 39bd10a866259ed5154c14f026277a703ac52268..56a4df03c0ce0761aa37a12c24b68186eb8a6b4f 100644
--- a/src/one-body-sample.org
+++ b/src/one-body-sample.org
@@ -364,6 +364,12 @@
     auto const timesteps = parset.get<size_t>("timeSteps");
     auto const tau = parset.get<double>("endOfTime") / timesteps;
   
+    auto createRHS = [&](double _time, VectorType &_ell) {
+      assemble_neumann<GridType, GridView, SmallVector, P1Basis>
+      (leafView, p1Basis, neumannNodes, _ell, neumannFunction, _time);
+      _ell += gravityFunctional;
+    };
+  
     auto const state_fpi_max
       = parset.get<size_t>("solver.tnnmg.fixed_point_iterations");
     for (size_t run = 1; run <= timesteps; ++run) {
@@ -378,9 +384,7 @@
       double const time = tau * run;
   
       VectorType ell(finestSize);
-      assemble_neumann<GridType, GridView, SmallVector, P1Basis>
-        (leafView, p1Basis, neumannNodes, ell, neumannFunction, time);
-      ell += gravityFunctional;
+      createRHS(time, ell);
   
       MatrixType problem_A;
       VectorType problem_rhs(finestSize);