diff --git a/src/main/java/teetime/util/StatisticsUtil.java b/src/main/java/teetime/util/StatisticsUtil.java
index 69655706c6d0093c154446a4561f5440a29c2e77..c27035aeead5e9e91ae387f442634829a4b00cf9 100644
--- a/src/main/java/teetime/util/StatisticsUtil.java
+++ b/src/main/java/teetime/util/StatisticsUtil.java
@@ -40,11 +40,10 @@ public class StatisticsUtil {
 		// utility class
 	}
 
-	public static PerformanceResult printStatistics(final long overallDurationInNs, final List<TimestampObject> timestampObjects) {
+	public static PerformanceResult computeStatistics(final long overallDurationInNs, final List<TimestampObject> timestampObjects) {
 		PerformanceResult performanceResult = new PerformanceResult();
 
 		performanceResult.overallDurationInNs = overallDurationInNs;
-		System.out.println("Duration: " + TimeUnit.NANOSECONDS.toMillis(overallDurationInNs) + " ms");
 
 		final List<Long> sortedDurationsInNs = new ArrayList<Long>(timestampObjects.size() / 2);
 		long sumInNs = 0;
@@ -59,24 +58,14 @@ public class StatisticsUtil {
 		performanceResult.sumInNs = sumInNs;
 
 		final Map<Double, Long> quintileValues = StatisticsUtil.calculateQuintiles(sortedDurationsInNs);
-
 		performanceResult.quantiles = quintileValues;
 
 		final long avgDurInNs = sumInNs / (timestampObjects.size() / 2);
-		System.out.println("avg duration: " + TimeUnit.NANOSECONDS.toMicros(avgDurInNs) + " µs");
-
 		performanceResult.avgDurInNs = avgDurInNs;
 
-		System.out.println(getQuantilesString(quintileValues));
-
 		final long confidenceWidthInNs = StatisticsUtil.calculateConfidenceWidth(sortedDurationsInNs, avgDurInNs);
-
 		performanceResult.confidenceWidthInNs = confidenceWidthInNs;
 
-		System.out.println("confidenceWidth: " + confidenceWidthInNs + " ns");
-		System.out.println("[" + TimeUnit.NANOSECONDS.toMicros(avgDurInNs - confidenceWidthInNs) + " µs, "
-				+ TimeUnit.NANOSECONDS.toMicros(avgDurInNs + confidenceWidthInNs) + " µs]");
-
 		return performanceResult;
 	}
 
diff --git a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
index e64266edd759091a2a917799994e0824b139e3a2..e4177ad83a6c9ad536e3bafd66906ca3b9dc9750 100644
--- a/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
+++ b/src/test/java/kieker/analysis/examples/throughput/ThroughputTimestampAnalysisTest.java
@@ -61,7 +61,7 @@ public class ThroughputTimestampAnalysisTest extends PerformanceTest {
 			stopWatch.end();
 		}
 
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
+		StatisticsUtil.computeStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
index 998a447ab710f9dd37c7e6a6375373beb73dd32c..df3054665485d7864469b18e60a96311c2e96d86 100644
--- a/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
+++ b/src/test/java/teetime/variant/explicitScheduling/examples/throughput/ThroughputTimestampAnalysisTest.java
@@ -58,7 +58,7 @@ public class ThroughputTimestampAnalysisTest extends PerformanceTest {
 			stopWatch.end();
 		}
 
-		StatisticsUtil.printStatistics(stopWatch.getDurationInNs(), timestampObjects);
+		StatisticsUtil.computeStatistics(stopWatch.getDurationInNs(), timestampObjects);
 	}
 
 }
diff --git a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
index 940e090b729c95bef7c65ed8086169c0eaed7590..8c6362baed596483242ccb306760083dfad3401a 100644
--- a/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
+++ b/src/test/java/teetime/variant/methodcall/examples/experiment01/MethodCallThoughputTimestampAnalysis1Test.java
@@ -15,10 +15,14 @@
  ***************************************************************************/
 package teetime.variant.methodcall.examples.experiment01;
 
+import static org.junit.Assert.assertEquals;
+
 import org.junit.Test;
 
 import teetime.util.ConstructorClosure;
+import teetime.util.StatisticsUtil;
 import teetime.variant.explicitScheduling.examples.throughput.TimestampObject;
+import test.PerformanceResult;
 import test.PerformanceTest;
 
 /**
@@ -28,8 +32,7 @@ import test.PerformanceTest;
  */
 public class MethodCallThoughputTimestampAnalysis1Test extends PerformanceTest {
 
-	// 500 times faster than our new framework
-	// TODO check why
+	// TODO check why the optimal, but inflexible impl is 500 times faster than our new framework
 
 	@Test
 	public void testWithManyObjects() {
@@ -54,6 +57,8 @@ public class MethodCallThoughputTimestampAnalysis1Test extends PerformanceTest {
 			this.stopWatch.end();
 		}
 
+		PerformanceResult performanceResult = StatisticsUtil.computeStatistics(this.stopWatch.getDurationInNs(), this.timestampObjects);
+		assertEquals(292, performanceResult.quantiles.get(0.5), 1); // chw home
 	}
 
 }
diff --git a/src/test/java/test/PerformanceTest.java b/src/test/java/test/PerformanceTest.java
index d3982b48dd58c7a3ec87b6555bfabe907a35a36a..5d74b846a0790962037ae979b3193d0a0a5424fd 100644
--- a/src/test/java/test/PerformanceTest.java
+++ b/src/test/java/test/PerformanceTest.java
@@ -2,6 +2,7 @@ package test;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
 
 import org.junit.After;
 import org.junit.Before;
@@ -23,7 +24,7 @@ public abstract class PerformanceTest {
 
 	public static final MeasurementRepository measurementRepository = new MeasurementRepository();
 
-	private Description description;
+	protected Description description;
 
 	protected StopWatch stopWatch;
 	protected List<TimestampObject> timestampObjects;
@@ -46,7 +47,14 @@ public abstract class PerformanceTest {
 
 	@After
 	public void after() {
-		PerformanceResult performanceResult = StatisticsUtil.printStatistics(this.stopWatch.getDurationInNs(), this.timestampObjects);
+		PerformanceResult performanceResult = StatisticsUtil.computeStatistics(this.stopWatch.getDurationInNs(), this.timestampObjects);
 		measurementRepository.performanceResults.put(this.description.getDisplayName(), performanceResult);
+
+		System.out.println("Duration: " + TimeUnit.NANOSECONDS.toMillis(performanceResult.overallDurationInNs) + " ms");
+		System.out.println("avg duration: " + TimeUnit.NANOSECONDS.toMicros(performanceResult.avgDurInNs) + " µs");
+		System.out.println(StatisticsUtil.getQuantilesString(performanceResult.quantiles));
+		System.out.println("confidenceWidth: " + performanceResult.confidenceWidthInNs + " ns");
+		System.out.println("[" + TimeUnit.NANOSECONDS.toMicros(performanceResult.avgDurInNs - performanceResult.confidenceWidthInNs) + " µs, "
+				+ TimeUnit.NANOSECONDS.toMicros(performanceResult.avgDurInNs + performanceResult.confidenceWidthInNs) + " µs]");
 	}
 }