diff --git a/src/main/java/teetime/framework/OldAnalysis.java b/src/main/java/teetime/framework/OldAnalysis.java
deleted file mode 100644
index 914c52b84cfdb8be535302b75b359afaba654e15..0000000000000000000000000000000000000000
--- a/src/main/java/teetime/framework/OldAnalysis.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/***************************************************************************
- * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ***************************************************************************/
-
-package teetime.framework;
-
-/**
- * @author Christian Wulf
- *
- * @since 1.10
- */
-@Deprecated
-public class OldAnalysis {
-
-	public void init() {
-		System.out.println("Analysis initialized.");
-	}
-
-	public void start() {
-		// System.out.println("Analysis started.");
-	}
-
-	public void onTerminate() {
-		System.out.println("Analysis stopped.");
-	}
-}
diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java
index 5ffed1c118611ce15eb3ed3ad270e9de439c263c..cd600de665c628cf1a4f7915d288173ff6c2780c 100644
--- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java
+++ b/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java
@@ -19,7 +19,6 @@ import java.util.List;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.CommittablePipe;
 import teetime.stage.CollectorSink;
@@ -35,7 +34,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis9 extends OldAnalysis {
+public class MethodCallThroughputAnalysis9 {
 
 	private int numInputObjects;
 	private ConstructorClosure<TimestampObject> inputObjectCreator;
@@ -43,9 +42,7 @@ public class MethodCallThroughputAnalysis9 extends OldAnalysis {
 	private List<TimestampObject> timestampObjects;
 	private Runnable runnable;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadStage pipeline = this.buildPipeline();
 		this.runnable = new RunnableStage(pipeline);
 	}
@@ -82,9 +79,7 @@ public class MethodCallThroughputAnalysis9 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 		this.runnable.run();
 	}
 
diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java
index 4cc544f9722feb7ea94cba4351ed8b774e46c0f0..82a31ff2bcdb706b0b67aec457fee9b82880636b 100644
--- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java
+++ b/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java
@@ -18,7 +18,6 @@ package teetime.examples.experiment10;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.stage.CollectorSink;
@@ -34,7 +33,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis10 extends OldAnalysis {
+public class MethodCallThroughputAnalysis10 {
 
 	private long numInputObjects;
 	private ConstructorClosure<TimestampObject> inputObjectCreator;
@@ -42,9 +41,7 @@ public class MethodCallThroughputAnalysis10 extends OldAnalysis {
 	private List<TimestampObject> timestampObjects;
 	private Runnable runnable;
 
-	@Override
 	public void init() {
-		super.init();
 		this.runnable = this.buildPipeline();
 	}
 
@@ -79,9 +76,7 @@ public class MethodCallThroughputAnalysis10 extends OldAnalysis {
 		return new RunnableStage(pipeline);
 	}
 
-	@Override
 	public void start() {
-		super.start();
 		this.runnable.run();
 	}
 
diff --git a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java
index 76dc925eaf56ed5b348111dd867220484a501a91..07b681ab9d9dd7bee6ce09a3eb9f045d880eb5fd 100644
--- a/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java
+++ b/src/performancetest/java/teetime/examples/experiment11/MethodCallThroughputAnalysis11.java
@@ -19,7 +19,6 @@ import java.util.List;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.UnorderedGrowablePipe;
 import teetime.stage.CollectorSink;
@@ -35,7 +34,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis11 extends OldAnalysis {
+public class MethodCallThroughputAnalysis11 {
 
 	private long numInputObjects;
 	private ConstructorClosure<TimestampObject> inputObjectCreator;
@@ -43,9 +42,7 @@ public class MethodCallThroughputAnalysis11 extends OldAnalysis {
 	private List<TimestampObject> timestampObjects;
 	private Runnable runnable;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadStage pipeline = this.buildPipeline(this.numInputObjects, this.inputObjectCreator);
 		this.runnable = new RunnableStage(pipeline);
 	}
@@ -83,9 +80,7 @@ public class MethodCallThroughputAnalysis11 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 		this.runnable.run();
 	}
 
diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
index 3b32e2bdadd7c333e92dda19187ec7e673eb8e3c..0853c73213650fbea5fc324951ebcd91fff2950b 100644
--- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
+++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
@@ -19,7 +19,6 @@ import java.util.List;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.IPipeFactory;
 import teetime.framework.pipe.PipeFactory;
@@ -38,7 +37,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis14 extends OldAnalysis {
+public class MethodCallThroughputAnalysis14 {
 
 	private long numInputObjects;
 	private ConstructorClosure<TimestampObject> inputObjectCreator;
@@ -47,9 +46,7 @@ public class MethodCallThroughputAnalysis14 extends OldAnalysis {
 	private Runnable runnable;
 	private final PipeFactory pipeFactory = PipeFactory.INSTANCE;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadStage pipeline = this.buildPipeline();
 		this.runnable = new RunnableStage(pipeline);
 	}
@@ -88,9 +85,7 @@ public class MethodCallThroughputAnalysis14 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 		this.runnable.run();
 	}
 
diff --git a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java
index acadf1ede7a143e522d2617c539f6ba846cf3c4b..6850f50cabddee7841602aa3179097f4ebced016 100644
--- a/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java
+++ b/src/performancetest/java/teetime/examples/experiment15/MethodCallThroughputAnalysis15.java
@@ -19,7 +19,6 @@ import java.util.List;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.OrderedGrowableArrayPipe;
 import teetime.framework.pipe.SingleElementPipe;
@@ -40,7 +39,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis15 extends OldAnalysis {
+public class MethodCallThroughputAnalysis15 {
 	// FIXME this analysis sometimes runs infinitely
 
 	private static final int SPSC_INITIAL_CAPACITY = 4;
@@ -54,9 +53,7 @@ public class MethodCallThroughputAnalysis15 extends OldAnalysis {
 	private Runnable runnable;
 	private Clock clock;
 
-	@Override
 	public void init() {
-		super.init();
 
 		HeadPipeline<Clock, Sink<Long>> clockPipeline = this.buildClockPipeline();
 		this.clockRunnable = new RunnableStage(clockPipeline);
@@ -115,9 +112,7 @@ public class MethodCallThroughputAnalysis15 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 		Thread clockThread = new Thread(this.clockRunnable);
 		clockThread.start();
 		this.runnable.run();
diff --git a/src/performancetest/java/teetime/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java b/src/performancetest/java/teetime/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
index 86bb46fb274ed3e71b34f0d28f5e554002976cf3..b0f56fd45d872d68fa01f5a8399211e0d73446dc 100644
--- a/src/performancetest/java/teetime/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
+++ b/src/performancetest/java/teetime/examples/experiment16/MethodCallThoughputTimestampAnalysis16Test.java
@@ -85,7 +85,6 @@ public class MethodCallThoughputTimestampAnalysis16Test extends PerformanceTest
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		this.timestampObjects = ListUtil.merge(analysis.getTimestampObjectsList());
diff --git a/src/performancetest/java/teetime/examples/experiment16/MethodCallThroughputAnalysis16.java b/src/performancetest/java/teetime/examples/experiment16/MethodCallThroughputAnalysis16.java
index 426d108c61443d2406ea65552f0671f2ddc78a1d..c84c2bad7ded7a93e6fbfe3449afe0e922966751 100644
--- a/src/performancetest/java/teetime/examples/experiment16/MethodCallThroughputAnalysis16.java
+++ b/src/performancetest/java/teetime/examples/experiment16/MethodCallThroughputAnalysis16.java
@@ -20,7 +20,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -39,7 +38,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis16 extends OldAnalysis {
+public class MethodCallThroughputAnalysis16 {
 
 	private static final int SPSC_INITIAL_CAPACITY = 100100;
 	private static final int NUM_WORKER_THREADS = Runtime.getRuntime().availableProcessors();
@@ -56,9 +55,7 @@ public class MethodCallThroughputAnalysis16 extends OldAnalysis {
 
 	private int numWorkerThreads;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> producerPipeline = this.buildProducerPipeline(this.numInputObjects,
 				this.inputObjectCreator);
 		this.producerThread = new Thread(new RunnableStage(producerPipeline));
@@ -125,9 +122,7 @@ public class MethodCallThroughputAnalysis16 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.producerThread.start();
 
diff --git a/src/performancetest/java/teetime/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java b/src/performancetest/java/teetime/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
index 69137f7471c73b9e48acfd343e2cead3ec7a99cf..28b98f9b8562a90b5a545bc084febcb543e9fd92 100644
--- a/src/performancetest/java/teetime/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
+++ b/src/performancetest/java/teetime/examples/experiment17/MethodCallThoughputTimestampAnalysis17Test.java
@@ -24,7 +24,7 @@ import util.PerformanceTest;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public class MethodCallThoughputTimestampAnalysis17Test extends PerformanceTest {
@@ -52,7 +52,6 @@ public class MethodCallThoughputTimestampAnalysis17Test extends PerformanceTest
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		this.timestampObjects = ListUtil.merge(analysis.getTimestampObjectsList());
diff --git a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java
index c1954504e7a0a135138dceffa148ffcb4dd030a1..b5a59e24c8f8e61cbd5bf32b8fc93077f549678f 100644
--- a/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java
+++ b/src/performancetest/java/teetime/examples/experiment17/MethodCallThroughputAnalysis17.java
@@ -20,7 +20,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.StageWithPort;
 import teetime.framework.pipe.DummyPipe;
@@ -45,7 +44,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis17 extends OldAnalysis {
+public class MethodCallThroughputAnalysis17 {
 
 	private static final int SPSC_INITIAL_CAPACITY = 100100;
 	private static final int NUM_WORKER_THREADS = Runtime.getRuntime().availableProcessors();
@@ -60,7 +59,6 @@ public class MethodCallThroughputAnalysis17 extends OldAnalysis {
 	private Thread producerThread;
 	private Thread[] workerThreads;
 
-	@Override
 	public void init() {
 		HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> producerPipeline = this.buildProducerPipeline(this.numInputObjects,
 				this.inputObjectCreator);
@@ -107,7 +105,6 @@ public class MethodCallThroughputAnalysis17 extends OldAnalysis {
 		// e1.printStackTrace();
 		// }
 
-		super.init();
 	}
 
 	@SuppressWarnings("unchecked")
@@ -169,9 +166,7 @@ public class MethodCallThroughputAnalysis17 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		for (Thread workerThread : this.workerThreads) {
 			workerThread.start();
diff --git a/src/performancetest/java/teetime/examples/experiment18/MethodCallThroughputAnalysis18.java b/src/performancetest/java/teetime/examples/experiment18/MethodCallThroughputAnalysis18.java
deleted file mode 100644
index e36abb3b103ab569ab8702c2e211c31f7ded408a..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment18/MethodCallThroughputAnalysis18.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/***************************************************************************
- * Copyright 2014 Kieker Project (http://kieker-monitoring.net)
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ***************************************************************************/
-package teetime.examples.experiment18;
-
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-
-import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
-import teetime.framework.RunnableStage;
-import teetime.framework.pipe.SpScPipe;
-import teetime.framework.pipe.UnorderedGrowablePipe;
-import teetime.stage.CollectorSink;
-import teetime.stage.NoopFilter;
-import teetime.stage.ObjectProducer;
-import teetime.stage.Relay;
-import teetime.stage.StartTimestampFilter;
-import teetime.stage.StopTimestampFilter;
-import teetime.stage.basic.distributor.Distributor;
-import teetime.util.ConstructorClosure;
-import teetime.util.TimestampObject;
-
-/**
- * @author Christian Wulf
- *
- * @since 1.10
- */
-public class MethodCallThroughputAnalysis18 extends OldAnalysis {
-
-	private static final int SPSC_INITIAL_CAPACITY = 4;
-	private static final int NUM_WORKER_THREADS = Runtime.getRuntime().availableProcessors();
-
-	private int numInputObjects;
-	private ConstructorClosure<TimestampObject> inputObjectCreator;
-	private int numNoopFilters;
-
-	private final List<List<TimestampObject>> timestampObjectsList = new LinkedList<List<TimestampObject>>();
-
-	private Thread producerThread;
-
-	private Thread[] workerThreads;
-
-	private int numWorkerThreads;
-
-	@Override
-	public void init() {
-		super.init();
-		HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> producerPipeline = this.buildProducerPipeline(this.numInputObjects,
-				this.inputObjectCreator);
-		this.producerThread = new Thread(new RunnableStage(producerPipeline));
-
-		this.numWorkerThreads = Math.min(NUM_WORKER_THREADS, this.numWorkerThreads);
-
-		this.workerThreads = new Thread[this.numWorkerThreads];
-		for (int i = 0; i < this.workerThreads.length; i++) {
-			List<TimestampObject> resultList = new ArrayList<TimestampObject>(this.numInputObjects);
-			this.timestampObjectsList.add(resultList);
-
-			HeadPipeline<?, ?> pipeline = this.buildPipeline(producerPipeline, resultList);
-			this.workerThreads[i] = new Thread(new RunnableStage(pipeline));
-		}
-	}
-
-	private HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> buildProducerPipeline(final int numInputObjects,
-			final ConstructorClosure<TimestampObject> inputObjectCreator) {
-		final ObjectProducer<TimestampObject> objectProducer = new ObjectProducer<TimestampObject>(numInputObjects, inputObjectCreator);
-		Distributor<TimestampObject> distributor = new Distributor<TimestampObject>();
-
-		final HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> pipeline = new HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>>();
-		pipeline.setFirstStage(objectProducer);
-		pipeline.setLastStage(distributor);
-
-		UnorderedGrowablePipe.connect(objectProducer.getOutputPort(), distributor.getInputPort());
-
-		return pipeline;
-	}
-
-	/**
-	 * @param numNoopFilters
-	 * @since 1.10
-	 */
-	private HeadPipeline<Relay<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline(
-			final HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> previousStage,
-			final List<TimestampObject> timestampObjects) {
-		Relay<TimestampObject> relay = new Relay<TimestampObject>();
-		@SuppressWarnings("unchecked")
-		final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters];
-		// create stages
-		final StartTimestampFilter startTimestampFilter = new StartTimestampFilter();
-		for (int i = 0; i < noopFilters.length; i++) {
-			noopFilters[i] = new NoopFilter<TimestampObject>();
-		}
-		final StopTimestampFilter stopTimestampFilter = new StopTimestampFilter();
-		final CollectorSink<TimestampObject> collectorSink = new CollectorSink<TimestampObject>(timestampObjects);
-
-		final HeadPipeline<Relay<TimestampObject>, CollectorSink<TimestampObject>> pipeline = new HeadPipeline<Relay<TimestampObject>, CollectorSink<TimestampObject>>();
-		pipeline.setFirstStage(relay);
-		pipeline.setLastStage(collectorSink);
-
-		SpScPipe.connect(previousStage.getLastStage().getNewOutputPort(), relay.getInputPort(), SPSC_INITIAL_CAPACITY);
-
-		UnorderedGrowablePipe.connect(relay.getOutputPort(), startTimestampFilter.getInputPort());
-
-		UnorderedGrowablePipe.connect(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
-		for (int i = 0; i < noopFilters.length - 1; i++) {
-			UnorderedGrowablePipe.connect(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
-		}
-		UnorderedGrowablePipe.connect(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
-		UnorderedGrowablePipe.connect(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
-
-		return pipeline;
-	}
-
-	@Override
-	public void start() {
-		super.start();
-
-		for (Thread workerThread : this.workerThreads) {
-			workerThread.start();
-		}
-
-		try {
-			for (Thread workerThread : this.workerThreads) {
-				workerThread.join();
-			}
-		} catch (InterruptedException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
-
-	public void setInput(final int numInputObjects, final ConstructorClosure<TimestampObject> inputObjectCreator) {
-		this.numInputObjects = numInputObjects;
-		this.inputObjectCreator = inputObjectCreator;
-	}
-
-	public int getNumNoopFilters() {
-		return this.numNoopFilters;
-	}
-
-	public void setNumNoopFilters(final int numNoopFilters) {
-		this.numNoopFilters = numNoopFilters;
-	}
-
-	public List<List<TimestampObject>> getTimestampObjectsList() {
-		return this.timestampObjectsList;
-	}
-
-	public int getNumWorkerThreads() {
-		return this.numWorkerThreads;
-	}
-
-	public void setNumWorkerThreads(final int numWorkerThreads) {
-		this.numWorkerThreads = numWorkerThreads;
-	}
-
-}
diff --git a/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java b/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
index 32f76c6039eca899468fc0ffea2bdcec470da6b0..b3e69c82fe98d8d1f855cb2fd6040cc05e56c33f 100644
--- a/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
+++ b/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
@@ -26,7 +26,7 @@ import util.PerformanceTest;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -82,7 +82,6 @@ public class MethodCallThoughputTimestampAnalysis19Test extends PerformanceTest
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		this.timestampObjects = ListUtil.merge(analysis.getTimestampObjectsList());
diff --git a/src/performancetest/java/teetime/examples/experiment19/MethodCallThroughputAnalysis19.java b/src/performancetest/java/teetime/examples/experiment19/MethodCallThroughputAnalysis19.java
index 9f6f95c1963077cdfc609a40fb4442c017ef4da0..b91a703bc3f61df66be2ccb72a2f174c34b9b7a9 100644
--- a/src/performancetest/java/teetime/examples/experiment19/MethodCallThroughputAnalysis19.java
+++ b/src/performancetest/java/teetime/examples/experiment19/MethodCallThroughputAnalysis19.java
@@ -20,7 +20,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.OrderedGrowableArrayPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -39,7 +38,7 @@ import teetime.util.TimestampObject;
  *
  * @since 1.10
  */
-public class MethodCallThroughputAnalysis19 extends OldAnalysis {
+public class MethodCallThroughputAnalysis19 {
 
 	private static final int SPSC_INITIAL_CAPACITY = 100100;
 	private static final int NUM_WORKER_THREADS = Runtime.getRuntime().availableProcessors();
@@ -56,9 +55,7 @@ public class MethodCallThroughputAnalysis19 extends OldAnalysis {
 
 	private int numWorkerThreads;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<ObjectProducer<TimestampObject>, Distributor<TimestampObject>> producerPipeline = this.buildProducerPipeline(this.numInputObjects,
 				this.inputObjectCreator);
 		this.producerThread = new Thread(new RunnableStage(producerPipeline));
@@ -120,9 +117,7 @@ public class MethodCallThroughputAnalysis19 extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.producerThread.start();
 
diff --git a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLogging.java b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLogging.java
index 0f8fce8e28cd9e8c49aa7511cfc9975cf3420202..20e61eb6b5dca3d74bf8f95aaf3c3fdc0d147830 100644
--- a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLogging.java
+++ b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLogging.java
@@ -1,24 +1,19 @@
 package teetime.examples.kiekerdays;
 
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.stage.io.TCPReader;
 
-public class TcpTraceLogging extends OldAnalysis {
+public class TcpTraceLogging {
 
 	private Thread tcpThread;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadStage tcpPipeline = this.buildTcpPipeline();
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 
@@ -43,7 +38,6 @@ public class TcpTraceLogging extends OldAnalysis {
 		try {
 			analysis.start();
 		} finally {
-			analysis.onTerminate();
 		}
 	}
 
diff --git a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLoggingExplorviz.java b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLoggingExplorviz.java
index 08975c93b73b7b6f13d23a90e8fd4aa6d9a5e8e3..9f3eab50be0bcf52b01a19330500a10ee3a37a79 100644
--- a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLoggingExplorviz.java
+++ b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceLoggingExplorviz.java
@@ -2,7 +2,6 @@ package teetime.examples.kiekerdays;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.stage.basic.Sink;
@@ -10,20 +9,16 @@ import teetime.stage.explorviz.KiekerRecordTcpReader;
 
 import kieker.common.record.IMonitoringRecord;
 
-public class TcpTraceLoggingExplorviz extends OldAnalysis {
+public class TcpTraceLoggingExplorviz {
 
 	private Thread tcpThread;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadStage tcpPipeline = this.buildTcpPipeline();
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 
@@ -54,7 +49,6 @@ public class TcpTraceLoggingExplorviz extends OldAnalysis {
 		try {
 			analysis.start();
 		} finally {
-			analysis.onTerminate();
 		}
 	}
 
diff --git a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReconstruction.java b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReconstruction.java
index e1fa8409e924d93d919e16c43ccd804af5894676..ccafe970b144bbbfc68ed7adc1c50568c22f94a7 100644
--- a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReconstruction.java
+++ b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReconstruction.java
@@ -6,7 +6,6 @@ import java.util.List;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -23,7 +22,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.flow.IFlowRecord;
 
-public class TcpTraceReconstruction extends OldAnalysis {
+public class TcpTraceReconstruction {
 
 	private static final int NUM_VIRTUAL_CORES = Runtime.getRuntime().availableProcessors();
 	private static final int MIO = 1000000;
@@ -38,9 +37,7 @@ public class TcpTraceReconstruction extends OldAnalysis {
 
 	private int numWorkerThreads;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<TCPReader, Distributor<IMonitoringRecord>> tcpPipeline = this.buildTcpPipeline();
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 
@@ -89,9 +86,7 @@ public class TcpTraceReconstruction extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 
@@ -110,14 +105,12 @@ public class TcpTraceReconstruction extends OldAnalysis {
 		}
 	}
 
-	@Override
 	public void onTerminate() {
 		int maxNumWaits = 0;
 		for (SpScPipe pipe : this.tcpRelayPipes) {
 			maxNumWaits = Math.max(maxNumWaits, pipe.getNumWaits());
 		}
 		System.out.println("max #waits of TcpRelayPipes: " + maxNumWaits);
-		super.onTerminate();
 	}
 
 	public List<TraceEventRecords> getElementCollection() {
diff --git a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReduction.java b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReduction.java
index 6950e52260ce4bf22cc7c542bbf2308d2d0ca776..a5f865400f00b4773a1b9c3b1e3ede2b68e292ef 100644
--- a/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReduction.java
+++ b/src/performancetest/java/teetime/examples/kiekerdays/TcpTraceReduction.java
@@ -8,7 +8,6 @@ import java.util.TreeMap;
 
 import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -29,7 +28,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.flow.IFlowRecord;
 
-public class TcpTraceReduction extends OldAnalysis {
+public class TcpTraceReduction {
 
 	private static final int NUM_VIRTUAL_CORES = Runtime.getRuntime().availableProcessors();
 	private static final int MIO = 1000000;
@@ -46,9 +45,7 @@ public class TcpTraceReduction extends OldAnalysis {
 
 	private int numWorkerThreads;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<TCPReader, Distributor<IMonitoringRecord>> tcpPipeline = this.buildTcpPipeline();
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 
@@ -119,9 +116,7 @@ public class TcpTraceReduction extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 		this.clockThread.start();
@@ -142,14 +137,12 @@ public class TcpTraceReduction extends OldAnalysis {
 		this.clockThread.interrupt();
 	}
 
-	@Override
 	public void onTerminate() {
 		int maxNumWaits = 0;
 		for (SpScPipe pipe : this.tcpRelayPipes) {
 			maxNumWaits = Math.max(maxNumWaits, pipe.getNumWaits());
 		}
 		System.out.println("max #waits of TcpRelayPipes: " + maxNumWaits);
-		super.onTerminate();
 	}
 
 	public List<TraceEventRecords> getElementCollection() {
diff --git a/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java b/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
index 04f8c1cb6ebaa69df37767d28766d5d5eff3acdb..c5f90a27dd45e3f3770c9618b5730302334d060c 100644
--- a/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
+++ b/src/performancetest/java/teetime/examples/traceReading/ChwHomeTcpTraceReadingTest.java
@@ -38,7 +38,7 @@ import util.StatisticsUtil;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
@@ -71,7 +71,6 @@ public class ChwHomeTcpTraceReadingTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		List<Long> recordThroughputs = ListUtil.removeFirstHalfElements(analysis.getRecordThroughputs());
diff --git a/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysis.java b/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysis.java
index 134eb645f5d2ec994d9daa94e8ae9b34f27f6a5e..fcf14f30f008543a81800f190fcebce259ad03fc 100644
--- a/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysis.java
+++ b/src/performancetest/java/teetime/examples/traceReading/TcpTraceLoggingExtAnalysis.java
@@ -3,7 +3,6 @@ package teetime.examples.traceReading;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -16,7 +15,7 @@ import teetime.stage.io.TCPReader;
 
 import kieker.common.record.IMonitoringRecord;
 
-public class TcpTraceLoggingExtAnalysis extends OldAnalysis {
+public class TcpTraceLoggingExtAnalysis {
 
 	private Thread clockThread;
 	private Thread tcpThread;
@@ -59,9 +58,7 @@ public class TcpTraceLoggingExtAnalysis extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void init() {
-		super.init();
 
 		HeadPipeline<Clock, Distributor<Long>> clockPipeline = this.buildClockPipeline(1000);
 		this.clockThread = new Thread(new RunnableStage(clockPipeline));
@@ -70,9 +67,7 @@ public class TcpTraceLoggingExtAnalysis extends OldAnalysis {
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 		this.clockThread.start();
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
index e5f30380b48175241c091c0a1ddb5536b90e9b0d..977cf394791587b3519c5b265cbf7d5b05f16c69 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTcpTraceReconstructionAnalysisTest.java
@@ -36,7 +36,7 @@ import util.StatisticsUtil;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public class ChwHomeTcpTraceReconstructionAnalysisTest {
@@ -68,7 +68,6 @@ public class ChwHomeTcpTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		List<Long> recordThroughputs = ListUtil.removeFirstHalfElements(analysis.getRecordThroughputs());
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
index 149c134df0edbc705a916a4877ac6da1bd86927f..f20679d55dcc20fd163ffe5bfa972ea06b6c1cc8 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwHomeTraceReconstructionAnalysisTest.java
@@ -37,7 +37,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public class ChwHomeTraceReconstructionAnalysisTest {
@@ -66,7 +66,6 @@ public class ChwHomeTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		StatisticsUtil.removeLeadingZeroThroughputs(analysis.getThroughputs());
@@ -96,7 +95,6 @@ public class ChwHomeTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		StatisticsUtil.removeLeadingZeroThroughputs(analysis.getThroughputs());
@@ -126,7 +124,6 @@ public class ChwHomeTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		StatisticsUtil.removeLeadingZeroThroughputs(analysis.getThroughputs());
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
index 8f99ad31f0af0e330b5424fe64725898b7b4e09f..e05b673d6b31b5d8384604bd2261128b543bfb8b 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTcpTraceReconstructionAnalysisTest.java
@@ -29,7 +29,7 @@ import util.StatisticsUtil;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public class ChwWorkTcpTraceReconstructionAnalysisTest {
@@ -61,7 +61,6 @@ public class ChwWorkTcpTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		Map<Double, Long> quintiles = StatisticsUtil.calculateQuintiles(analysis.getTraceThroughputs());
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
index 3c0604ae876e5711c3bcb6042219ba56d8fee3ff..335a6447b9889a5a9def1d7ac74bad6f7e9c89a9 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/ChwWorkTraceReconstructionAnalysisTest.java
@@ -37,7 +37,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 
 /**
  * @author Christian Wulf
- * 
+ *
  * @since 1.10
  */
 public class ChwWorkTraceReconstructionAnalysisTest {
@@ -66,7 +66,6 @@ public class ChwWorkTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(50002, analysis.getNumRecords());
@@ -94,7 +93,6 @@ public class ChwWorkTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(1489902, analysis.getNumRecords());
@@ -124,7 +122,6 @@ public class ChwWorkTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(17371, analysis.getNumRecords());
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java b/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
index 9e45c3b6181d23135f2b1363485c5718d49eef9f..40f0170f52558cc7b5a1a394cfc8f7518c88f099 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/KiekerTraceReconstructionAnalysis.java
@@ -4,8 +4,6 @@ import java.io.File;
 import java.util.LinkedList;
 import java.util.List;
 
-import teetime.framework.OldAnalysis;
-
 import kieker.analysis.AnalysisController;
 import kieker.analysis.IAnalysisController;
 import kieker.analysis.IProjectContext;
@@ -25,7 +23,7 @@ import kieker.analysis.stage.TimeReader;
 import kieker.common.configuration.Configuration;
 import kieker.common.record.flow.IFlowRecord;
 
-public class KiekerTraceReconstructionAnalysis extends OldAnalysis {
+public class KiekerTraceReconstructionAnalysis {
 
 	private final IAnalysisController analysisController = new AnalysisController();
 
@@ -42,9 +40,7 @@ public class KiekerTraceReconstructionAnalysis extends OldAnalysis {
 		this.inputDir = inputDir;
 	}
 
-	@Override
 	public void init() {
-		super.init();
 
 		final Configuration clockConfiguration = new Configuration();
 		clockConfiguration.setProperty(TimeReader.CONFIG_PROPERTY_VALUE_UPDATE_INTERVAL_NS, Integer.toString(50 * 1000 * 1000));
@@ -99,9 +95,7 @@ public class KiekerTraceReconstructionAnalysis extends OldAnalysis {
 
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		try {
 			this.analysisController.run();
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java b/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
index 41a7926b63abd446ff473c8ff5ed1c0e03872324..77c352fc7becada7f933b90985db786275fb4c07 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/NieWorkKiekerTraceReconstructionAnalysisTest.java
@@ -63,7 +63,6 @@ public class NieWorkKiekerTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(50002, analysis.getNumRecords());
@@ -89,7 +88,6 @@ public class NieWorkKiekerTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(1489901, analysis.getNumRecords());
@@ -117,7 +115,6 @@ public class NieWorkKiekerTraceReconstructionAnalysisTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		assertEquals(17371, analysis.getNumRecords());
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionAnalysis.java b/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionAnalysis.java
index e503a3d48531fee3c47c73c8e71c57c828f00231..ff835b17817bc32b0bfe5d532b39b53a4822ca5d 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionAnalysis.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/TcpTraceReconstructionAnalysis.java
@@ -4,7 +4,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -23,7 +22,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.flow.IFlowRecord;
 
-public class TcpTraceReconstructionAnalysis extends OldAnalysis {
+public class TcpTraceReconstructionAnalysis {
 
 	private static final int MIO = 1000000;
 	private static final int TCP_RELAY_MAX_SIZE = 2 * MIO;
@@ -41,9 +40,7 @@ public class TcpTraceReconstructionAnalysis extends OldAnalysis {
 	private ElementThroughputMeasuringStage<IFlowRecord> recordThroughputFilter;
 	private ElementThroughputMeasuringStage<TraceEventRecords> traceThroughputFilter;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<Clock, Distributor<Long>> clockStage = this.buildClockPipeline(1000);
 		this.clockThread = new Thread(new RunnableStage(clockStage));
 
@@ -101,9 +98,7 @@ public class TcpTraceReconstructionAnalysis extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.workerThread.start();
 		// this.clockThread.start();
diff --git a/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java b/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java
index 687084969a819fdf61e9734a85bfa1eba942f5fb..dd4545c820858902263ef4c5aca20a7490884c06 100644
--- a/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java
+++ b/src/performancetest/java/teetime/examples/traceReconstruction/TraceReconstructionAnalysis.java
@@ -5,7 +5,6 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.pipe.SingleElementPipe;
 import teetime.framework.pipe.SpScPipe;
@@ -30,7 +29,7 @@ import kieker.analysis.plugin.filter.flow.TraceEventRecords;
 import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.flow.IFlowRecord;
 
-public class TraceReconstructionAnalysis extends OldAnalysis {
+public class TraceReconstructionAnalysis {
 
 	private final List<TraceEventRecords> elementCollection = new LinkedList<TraceEventRecords>();
 
@@ -46,9 +45,7 @@ public class TraceReconstructionAnalysis extends OldAnalysis {
 
 	private File inputDir;
 
-	@Override
 	public void init() {
-		super.init();
 		Clock clockStage = this.buildClockPipeline();
 		this.clockThread = new Thread(new RunnableStage(clockStage));
 
@@ -108,9 +105,7 @@ public class TraceReconstructionAnalysis extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.clockThread.start();
 		this.workerThread.start();
diff --git a/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java b/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
index 340b416197e81cca1d0c5b278af3e29287cbe564..41d1eab09b2687654a7aaf7b3adf2c41c8e23984 100644
--- a/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
+++ b/src/performancetest/java/teetime/examples/traceReductionWithThreads/ChwWorkTcpTraceReductionAnalysisWithThreadsTest.java
@@ -108,7 +108,6 @@ public class ChwWorkTcpTraceReductionAnalysisWithThreadsTest {
 			analysis.start();
 		} finally {
 			this.stopWatch.end();
-			analysis.onTerminate();
 		}
 
 		System.out.println("#waits of tcp-relay pipe: " + analysis.getTcpRelayPipe().getNumWaits());
diff --git a/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreads.java b/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreads.java
index 8879fc237faaa131662fa65b1501e0e326324613..7153c5ccf4e56d311314eb8feab575ad0eb35d09 100644
--- a/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreads.java
+++ b/src/performancetest/java/teetime/examples/traceReductionWithThreads/TcpTraceReductionAnalysisWithThreads.java
@@ -9,7 +9,6 @@ import java.util.Map;
 import java.util.TreeMap;
 
 import teetime.framework.HeadPipeline;
-import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
 import teetime.framework.StageWithPort;
 import teetime.framework.pipe.SingleElementPipe;
@@ -36,7 +35,7 @@ import kieker.common.record.IMonitoringRecord;
 import kieker.common.record.flow.IFlowRecord;
 import kieker.common.record.flow.trace.TraceMetadata;
 
-public class TcpTraceReductionAnalysisWithThreads extends OldAnalysis {
+public class TcpTraceReductionAnalysisWithThreads {
 
 	private static final int NUM_VIRTUAL_CORES = Runtime.getRuntime().availableProcessors();
 	private static final int MIO = 1000000;
@@ -52,9 +51,7 @@ public class TcpTraceReductionAnalysisWithThreads extends OldAnalysis {
 	private SpScPipe tcpRelayPipe;
 	private int numWorkerThreads;
 
-	@Override
 	public void init() {
-		super.init();
 		HeadPipeline<TCPReader, Distributor<IMonitoringRecord>> tcpPipeline = this.buildTcpPipeline();
 		this.tcpThread = new Thread(new RunnableStage(tcpPipeline));
 
@@ -197,9 +194,7 @@ public class TcpTraceReductionAnalysisWithThreads extends OldAnalysis {
 		return pipeline;
 	}
 
-	@Override
 	public void start() {
-		super.start();
 
 		this.tcpThread.start();
 		this.clockThread.start();