diff --git a/src/bisection-example-new.cc b/src/bisection-example-new.cc
index c44375fe92dfd5f835da5c8da273203b24247ee7..f4820defcb2b430492628e5e4f05e96d60b30ed2 100644
--- a/src/bisection-example-new.cc
+++ b/src/bisection-example-new.cc
@@ -152,6 +152,20 @@ class SampleFunctional {
   }
 };
 
+template <int dim, class Function>
+void functionTester(
+    SampleFunctional<dim, Function> J,
+    typename SampleFunctional<dim, Function>::SmallVector &start, size_t runs) {
+  typename SampleFunctional<dim, Function>::SmallVector correction;
+  for (size_t i = 1; i <= runs; ++i) {
+    correction = J.minimise(start);
+    start += correction;
+    if (i != runs)
+      std::cout << "New value: J(...) = " << J(start) << std::endl;
+  }
+  std::cout << "Arrived at J(...) = " << J(start) << std::endl;
+}
+
 void testSampleFunction() {
   int const dim = 2;
   typedef SampleFunctional<dim, SampleFunction> SampleFunctional;
@@ -167,21 +181,10 @@ void testSampleFunction() {
 
   SampleFunctional J(A, b);
 
-  SampleFunctional::SmallVector c = b;
-  c /= c.two_norm();
-
-  // assert(J.directionalDerivative(b,c) == 2*sqrt(5) + 2);
-
   SampleFunctional::SmallVector start = b;
   start *= 17;
-  SampleFunctional::SmallVector correction;
 
-  for (int i = 1; i <= 6; ++i) {
-    correction = J.minimise(start);
-    start += correction;
-    std::cout << "New value: J(...) = " << J(start) << std::endl;
-  }
-  std::cout << "Arrived at J(...) = " << J(start) << std::endl;
+  functionTester(J, start, 6);
 }
 
 void testTrivialFunction() {
@@ -199,26 +202,16 @@ void testTrivialFunction() {
 
   SampleFunctional J(A, b);
 
-  SampleFunctional::SmallVector c = b;
-  c /= c.two_norm();
-
-  // assert(J.directionalDerivative(b,c) == 2*sqrt(5));
-
   SampleFunctional::SmallVector start = b;
   start *= 17;
-  SampleFunctional::SmallVector correction;
 
-  for (int i = 1; i <= 5; ++i) {
-    correction = J.minimise(start);
-    start += correction;
-    std::cout << "New value: J(...) = " << J(start) << std::endl;
-  }
-  std::cout << "Arrived at J(...) = " << J(start) << std::endl;
+  functionTester(J, start, 5);
 }
 
 int main() {
   try {
     testSampleFunction();
+    std::cout << std::endl;
     testTrivialFunction();
     return 0;
   }