diff --git a/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java b/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..93b054e625686c339648d1f15ec0a5831a87321d
--- /dev/null
+++ b/src/main/java/teetime/framework/pipe/CommittablePipeFactory.java
@@ -0,0 +1,35 @@
+package teetime.framework.pipe;
+
+import teetime.framework.InputPort;
+import teetime.framework.OutputPort;
+import teetime.framework.pipe.PipeFactoryRegistry.PipeOrdering;
+import teetime.framework.pipe.PipeFactoryRegistry.ThreadCommunication;
+
+public class CommittablePipeFactory implements IPipeFactory {
+
+	@Override
+	public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort) {
+		return this.create(sourcePort, targetPort, 1);
+	}
+
+	@Override
+	public <T> IPipe create(final OutputPort<? extends T> sourcePort, final InputPort<T> targetPort, final int capacity) {
+		return new CommittablePipe(sourcePort, targetPort);
+	}
+
+	@Override
+	public ThreadCommunication getThreadCommunication() {
+		return ThreadCommunication.INTRA;
+	}
+
+	@Override
+	public PipeOrdering getOrdering() {
+		return PipeOrdering.STACK_BASED;
+	}
+
+	@Override
+	public boolean isGrowable() {
+		return true;
+	}
+
+}
diff --git a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java
index 6269483291a6e0dd2790d18e75e5c14d73023016..e9652516668a8b7ba9d5e05d2bfcc24749abf52f 100644
--- a/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java
+++ b/src/performancetest/java/teetime/examples/ComparisonMethodcallWithPorts.java
@@ -7,8 +7,7 @@ import org.junit.runners.Suite;
 import org.junit.runners.Suite.SuiteClasses;
 
 import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test;
-import teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test;
-import teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test;
+import teetime.examples.experiment09pipeimpls.MethodCallThoughputTimestampAnalysis9Test;
 import teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test;
 import teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test;
 import teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test;
@@ -21,7 +20,6 @@ import util.test.PerformanceCheckProfileRepository;
 @SuiteClasses({
 	MethodCallThoughputTimestampAnalysis1Test.class,
 	MethodCallThoughputTimestampAnalysis9Test.class,
-	MethodCallThoughputTimestampAnalysis10Test.class,
 	MethodCallThoughputTimestampAnalysis11Test.class,
 	MethodCallThoughputTimestampAnalysis14Test.class,
 	MethodCallThoughputTimestampAnalysis15Test.class,
diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java
deleted file mode 100644
index 5c9413409bdaf5d3c05c29981b65c9a10a8b05be..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment09/ChwHomePerformanceCheck.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package teetime.examples.experiment09;
-
-import static org.junit.Assert.assertEquals;
-import teetime.examples.HostName;
-
-class ChwHomePerformanceCheck extends AbstractPerformanceCheck {
-
-	@Override
-	public String getCorrespondingPerformanceProfile() {
-		return HostName.CHW_HOME.toString();
-	}
-
-	@Override
-	public void check() {
-		super.check();
-
-		double medianSpeedup = (double) test09.quantiles.get(0.5) / test01.quantiles.get(0.5);
-
-		System.out.println("medianSpeedup (09): " + medianSpeedup);
-
-		// until 25.06.2014 (incl.)
-		// assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
-		// since 26.06.2014 (incl.)
-		// assertEquals(36, value9, 2.1); // +14
-		// since 04.07.2014 (incl.)
-		// assertEquals(42, value9, 2.1); // +6
-		// since 11.08.2014 (incl.)
-		// assertEquals(42, value9, 2.1); // +6
-		// since 31.08.2014 (incl.)
-		// assertEquals(44, medianSpeedup, 2.1); // +2
-		// since 04.11.2014 (incl.)
-		// assertEquals(71, medianSpeedup, 2.1); // +33
-		// since 05.12.2014 (incl.)
-		// assertEquals(45, medianSpeedup, 2.1); // -26
-		// since 28.12.2014 (incl.)
-		assertEquals(56, medianSpeedup, 2.1); // +11
-	}
-}
diff --git a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java
deleted file mode 100644
index 5359eddcfda3a73fafe83f18b61089b770152033..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment09/ChwWorkPerformanceCheck.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package teetime.examples.experiment09;
-
-import static org.junit.Assert.assertEquals;
-
-class ChwWorkPerformanceCheck extends AbstractPerformanceCheck {
-
-	@Override
-	public String getCorrespondingPerformanceProfile() {
-		return "ChwWork";
-	}
-
-	@Override
-	public void check() {
-		super.check();
-
-		double medianSpeedup = (double) test09.quantiles.get(0.5) / test01.quantiles.get(0.5);
-
-		System.out.println("medianSpeedup (09): " + medianSpeedup);
-
-		// until 25.06.2014 (incl.)
-		// assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
-		// since 26.06.2014 (incl.)
-		// assertEquals(36, value9, 2.1); // +14
-		// since 04.07.2014 (incl.)
-		// assertEquals(42, value9, 2.1); // +6
-		// since 27.08.2014 (incl.)
-		// assertEquals(77, value9, 2.1); // +35
-		// since 14.10.2014 (incl.)
-		// assertEquals(67, medianSpeedup, 3.1); // -10
-		// since 19.12.2014 (incl.)
-		assertEquals(53, medianSpeedup, 3.1); // -14
-	}
-}
diff --git a/src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java
similarity index 54%
rename from src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java
rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java
index 66bccb2bba83dfd3bdcde5b1b107e41691d323c9..783af21b8663262eeb670fe124c226bbfe367a77 100644
--- a/src/performancetest/java/teetime/examples/experiment09/AbstractPerformanceCheck.java
+++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/AbstractPerformanceCheck.java
@@ -1,22 +1,27 @@
-package teetime.examples.experiment09;
+package teetime.examples.experiment09pipeimpls;
 
 import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test;
+import util.test.AbstractProfiledPerformanceAssertion;
 import util.test.MeasurementRepository;
 import util.test.PerformanceResult;
 import util.test.PerformanceTest;
-import util.test.AbstractProfiledPerformanceAssertion;
 
 abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAssertion {
 
 	protected PerformanceResult test01;
-	protected PerformanceResult test09;
+	protected PerformanceResult test09CommittablePipes;
+	protected PerformanceResult test09SingleElementPipes;
 
 	@Override
 	public void check() {
 		String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects");
 		test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
-		testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testWithManyObjects");
-		test09 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
+
+		testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testCommittablePipes");
+		test09CommittablePipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
+
+		testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis9Test.class, "testSingleElementPipes");
+		test09SingleElementPipes = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
 	}
 
 }
diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java
new file mode 100644
index 0000000000000000000000000000000000000000..b2bc8c82552d56debba916b67b14f043671d9eb6
--- /dev/null
+++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwHomePerformanceCheck.java
@@ -0,0 +1,63 @@
+package teetime.examples.experiment09pipeimpls;
+
+import static org.junit.Assert.assertEquals;
+import teetime.examples.HostName;
+
+class ChwHomePerformanceCheck extends AbstractPerformanceCheck {
+
+	@Override
+	public String getCorrespondingPerformanceProfile() {
+		return HostName.CHW_HOME.toString();
+	}
+
+	@Override
+	public void check() {
+		super.check();
+
+		checkCommittablePipes();
+		checkSingleElementPipes();
+	}
+
+	private void checkCommittablePipes() {
+		double medianSpeedup = (double) test09CommittablePipes.quantiles.get(0.5) / test01.quantiles.get(0.5);
+
+		System.out.println("medianSpeedup (09 committable pipes): " + medianSpeedup);
+
+		// until 25.06.2014 (incl.)
+		// assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
+		// since 26.06.2014 (incl.)
+		// assertEquals(36, value9, 2.1); // +14
+		// since 04.07.2014 (incl.)
+		// assertEquals(42, value9, 2.1); // +6
+		// since 11.08.2014 (incl.)
+		// assertEquals(42, value9, 2.1); // +6
+		// since 31.08.2014 (incl.)
+		// assertEquals(44, medianSpeedup, 2.1); // +2
+		// since 04.11.2014 (incl.)
+		// assertEquals(71, medianSpeedup, 2.1); // +33
+		// since 05.12.2014 (incl.)
+		// assertEquals(45, medianSpeedup, 2.1); // -26
+		// since 28.12.2014 (incl.)
+		assertEquals(56, medianSpeedup, 2.1); // +11
+	}
+
+	private void checkSingleElementPipes() {
+		double medianSpeedup = (double) test09SingleElementPipes.quantiles.get(0.5) / test01.quantiles.get(0.5);
+
+		System.out.println("meanSpeedup (09 single element pipes): " + medianSpeedup);
+
+		// since 26.06.2014 (incl.)
+		// assertEquals(26, value10, 2.1); // +14
+		// // since 04.07.2014 (incl.)
+		// assertEquals(26, value10, 2.1); // +0
+		// since 11.08.2014 (incl.)
+		// assertEquals(47, value10, 2.1); // +21
+		// since 31.08.2014 (incl.)
+		// assertEquals(51, medianSpeedup, 3.2); // +4
+		// since 13.12.2014 (incl.)
+		// assertEquals(40, medianSpeedup, 3.2); // -11
+		// since 28.12.2014 (incl.)
+		assertEquals(24, medianSpeedup, 3.2); // -16
+	}
+
+}
diff --git a/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java
new file mode 100644
index 0000000000000000000000000000000000000000..f29535c8da8b77cda0e0a86716a0339ed0da60cd
--- /dev/null
+++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/ChwWorkPerformanceCheck.java
@@ -0,0 +1,55 @@
+package teetime.examples.experiment09pipeimpls;
+
+import static org.junit.Assert.assertEquals;
+
+class ChwWorkPerformanceCheck extends AbstractPerformanceCheck {
+
+	@Override
+	public String getCorrespondingPerformanceProfile() {
+		return "ChwWork";
+	}
+
+	@Override
+	public void check() {
+		super.check();
+
+		checkCommittablePipes();
+		checkSingleElementPipes();
+	}
+
+	private void checkCommittablePipes() {
+		double medianSpeedup = (double) test09CommittablePipes.quantiles.get(0.5) / test01.quantiles.get(0.5);
+
+		System.out.println("medianSpeedup (09): " + medianSpeedup);
+
+		// until 25.06.2014 (incl.)
+		// assertEquals(22, (double) test9.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
+		// since 26.06.2014 (incl.)
+		// assertEquals(36, value9, 2.1); // +14
+		// since 04.07.2014 (incl.)
+		// assertEquals(42, value9, 2.1); // +6
+		// since 27.08.2014 (incl.)
+		// assertEquals(77, value9, 2.1); // +35
+		// since 14.10.2014 (incl.)
+		// assertEquals(67, medianSpeedup, 3.1); // -10
+		// since 19.12.2014 (incl.)
+		assertEquals(53, medianSpeedup, 3.1); // -14
+	}
+
+	private void checkSingleElementPipes() {
+		double medianSpeedup = (double) test09SingleElementPipes.quantiles.get(0.5) / test01.quantiles.get(0.5);
+
+		System.out.println("medianSpeedup (09 single element pipes): " + medianSpeedup);
+
+		// until 25.06.2014 (incl.)
+		// assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
+		// since 26.06.2014 (incl.)
+		// assertEquals(26, meanSpeedup, 2.1); // +14
+		// since 04.07.2014 (incl.)
+		// assertEquals(26, meanSpeedup, 2.1); // +0
+		// since 27.08.2014 (incl.)
+		// assertEquals(56, meanSpeedup, 2.1); // +30
+		// since 14.10.2014 (incl.)
+		assertEquals(25, medianSpeedup, 3.1); // -31
+	}
+}
diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java
similarity index 78%
rename from src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java
index a8072963ef838c9c08887290daca5c9754a42200..f51b30424a75df3c79bd268b9ed610af1de24831 100644
--- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThoughputTimestampAnalysis9Test.java
+++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThoughputTimestampAnalysis9Test.java
@@ -13,16 +13,19 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.experiment09;
+package teetime.examples.experiment09pipeimpls;
 
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import teetime.framework.pipe.CommittablePipeFactory;
+import teetime.framework.pipe.IPipeFactory;
+import teetime.framework.pipe.SingleElementPipeFactory;
 import teetime.util.ConstructorClosure;
 import teetime.util.TimestampObject;
-import util.test.PerformanceTest;
 import util.test.AbstractProfiledPerformanceAssertion;
+import util.test.PerformanceTest;
 
 /**
  * @author Christian Wulf
@@ -35,16 +38,27 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest {
 	public static void beforeClass() {
 		PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis9Test.class, new ChwWorkPerformanceCheck());
 		PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis9Test.class, new ChwHomePerformanceCheck());
-	};
+	}
 
 	@AfterClass
 	public static void afterClass() {
 		AbstractProfiledPerformanceAssertion performanceCheckProfile = PERFORMANCE_CHECK_PROFILE_REPOSITORY.get(MethodCallThoughputTimestampAnalysis9Test.class);
 		performanceCheckProfile.check();
-	};
+	}
 
 	@Test
-	public void testWithManyObjects() {
+	public void testCommittablePipes() throws Exception {
+		IPipeFactory pipeFactory = new CommittablePipeFactory();
+		testWithManyObjects(pipeFactory);
+	}
+
+	@Test
+	public void testSingleElementPipes() throws Exception {
+		IPipeFactory pipeFactory = new SingleElementPipeFactory();
+		testWithManyObjects(pipeFactory);
+	}
+
+	private void testWithManyObjects(final IPipeFactory pipeFactory) {
 		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
 				+ NUM_NOOP_FILTERS + "...");
 
@@ -57,7 +71,7 @@ public class MethodCallThoughputTimestampAnalysis9Test extends PerformanceTest {
 				return new TimestampObject();
 			}
 		});
-		analysis.init();
+		analysis.init(pipeFactory);
 
 		this.stopWatch.start();
 		try {
diff --git a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java
similarity index 81%
rename from src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java
rename to src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java
index 9f96c90e0a321afbe7e69a2b69e81f27d3f50e1b..718b3295c00e56e6c2caa89dff663e2c0425a62e 100644
--- a/src/performancetest/java/teetime/examples/experiment09/MethodCallThroughputAnalysis9.java
+++ b/src/performancetest/java/teetime/examples/experiment09pipeimpls/MethodCallThroughputAnalysis9.java
@@ -13,14 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  ***************************************************************************/
-package teetime.examples.experiment09;
+package teetime.examples.experiment09pipeimpls;
 
 import java.util.List;
 
-import teetime.framework.Stage;
 import teetime.framework.OldHeadPipeline;
 import teetime.framework.RunnableProducerStage;
-import teetime.framework.pipe.CommittablePipe;
+import teetime.framework.Stage;
+import teetime.framework.pipe.IPipeFactory;
 import teetime.stage.CollectorSink;
 import teetime.stage.NoopFilter;
 import teetime.stage.ObjectProducer;
@@ -42,17 +42,18 @@ public class MethodCallThroughputAnalysis9 {
 	private List<TimestampObject> timestampObjects;
 	private Runnable runnable;
 
-	public void init() {
-		Stage pipeline = this.buildPipeline();
+	public void init(final IPipeFactory pipeFactory) {
+		Stage pipeline = this.buildPipeline(pipeFactory);
 		this.runnable = new RunnableProducerStage(pipeline);
 	}
 
 	/**
+	 * @param pipeFactory
 	 * @param numNoopFilters
 	 * @return
 	 * @since 1.10
 	 */
-	private OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline() {
+	private OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> buildPipeline(final IPipeFactory pipeFactory) {
 		@SuppressWarnings("unchecked")
 		final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters];
 		// create stages
@@ -68,13 +69,13 @@ public class MethodCallThroughputAnalysis9 {
 		pipeline.setFirstStage(objectProducer);
 		pipeline.setLastStage(collectorSink);
 
-		CommittablePipe.connect(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
-		CommittablePipe.connect(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
+		pipeFactory.create(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
+		pipeFactory.create(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
 		for (int i = 0; i < noopFilters.length - 1; i++) {
-			CommittablePipe.connect(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
+			pipeFactory.create(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
 		}
-		CommittablePipe.connect(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
-		CommittablePipe.connect(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
+		pipeFactory.create(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
+		pipeFactory.create(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
 
 		return pipeline;
 	}
diff --git a/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java
deleted file mode 100644
index 972d560839c9419d54fd2e9fc84ba01b16c3cc8b..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment10/AbstractPerformanceCheck.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package teetime.examples.experiment10;
-
-import teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test;
-import util.test.MeasurementRepository;
-import util.test.PerformanceResult;
-import util.test.PerformanceTest;
-import util.test.AbstractProfiledPerformanceAssertion;
-
-abstract class AbstractPerformanceCheck extends AbstractProfiledPerformanceAssertion {
-
-	protected PerformanceResult test01;
-	protected PerformanceResult test10;
-
-	@Override
-	public void check() {
-		String testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis1Test.class, "testWithManyObjects");
-		test01 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
-		testMethodIdentifier = MeasurementRepository.buildTestMethodIdentifier(MethodCallThoughputTimestampAnalysis10Test.class, "testWithManyObjects");
-		test10 = PerformanceTest.measurementRepository.performanceResults.get(testMethodIdentifier);
-	}
-
-}
diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java
deleted file mode 100644
index 5755e5cfacbae8bf58bdc159585f808074cd1ece..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment10/ChwHomePerformanceCheck.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package teetime.examples.experiment10;
-
-import static org.junit.Assert.assertEquals;
-import teetime.examples.HostName;
-
-class ChwHomePerformanceCheck extends AbstractPerformanceCheck {
-
-	@Override
-	public String getCorrespondingPerformanceProfile() {
-		return HostName.CHW_HOME.toString();
-	}
-
-	@Override
-	public void check() {
-		super.check();
-
-		double medianSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5);
-
-		System.out.println("meanSpeedup (10): " + medianSpeedup);
-
-		// since 26.06.2014 (incl.)
-		// assertEquals(26, value10, 2.1); // +14
-		// // since 04.07.2014 (incl.)
-		// assertEquals(26, value10, 2.1); // +0
-		// since 11.08.2014 (incl.)
-		// assertEquals(47, value10, 2.1); // +21
-		// since 31.08.2014 (incl.)
-		// assertEquals(51, medianSpeedup, 3.2); // +4
-		// since 13.12.2014 (incl.)
-		// assertEquals(40, medianSpeedup, 3.2); // -11
-		// since 28.12.2014 (incl.)
-		assertEquals(24, medianSpeedup, 3.2); // -16
-	}
-}
diff --git a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java
deleted file mode 100644
index bbb49ded324bbea6fa44fa9561c4a7676b1241ea..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment10/ChwWorkPerformanceCheck.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package teetime.examples.experiment10;
-
-import static org.junit.Assert.assertEquals;
-
-class ChwWorkPerformanceCheck extends AbstractPerformanceCheck {
-
-	@Override
-	public String getCorrespondingPerformanceProfile() {
-		return "ChwWork";
-	}
-
-	@Override
-	public void check() {
-		super.check();
-
-		double medianSpeedup = (double) test10.quantiles.get(0.5) / test01.quantiles.get(0.5);
-
-		System.out.println("medianSpeedup (10): " + medianSpeedup);
-
-		// until 25.06.2014 (incl.)
-		// assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
-		// since 26.06.2014 (incl.)
-		// assertEquals(26, meanSpeedup, 2.1); // +14
-		// since 04.07.2014 (incl.)
-		// assertEquals(26, meanSpeedup, 2.1); // +0
-		// since 27.08.2014 (incl.)
-		// assertEquals(56, meanSpeedup, 2.1); // +30
-		// since 14.10.2014 (incl.)
-		assertEquals(25, medianSpeedup, 3.1); // -31
-	}
-}
diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
deleted file mode 100644
index aac62e41839dfe71af9edddd098084aeefbd996f..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThoughputTimestampAnalysis10Test.java
+++ /dev/null
@@ -1,70 +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.experiment10;
-
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import teetime.util.ConstructorClosure;
-import teetime.util.TimestampObject;
-import util.test.PerformanceTest;
-import util.test.AbstractProfiledPerformanceAssertion;
-
-/**
- * @author Christian Wulf
- *
- * @since 1.10
- */
-public class MethodCallThoughputTimestampAnalysis10Test extends PerformanceTest {
-
-	@BeforeClass
-	public static void beforeClass() {
-		PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis10Test.class, new ChwWorkPerformanceCheck());
-		PERFORMANCE_CHECK_PROFILE_REPOSITORY.register(MethodCallThoughputTimestampAnalysis10Test.class, new ChwHomePerformanceCheck());
-	};
-
-	@AfterClass
-	public static void afterClass() {
-		AbstractProfiledPerformanceAssertion performanceCheckProfile = PERFORMANCE_CHECK_PROFILE_REPOSITORY.get(MethodCallThoughputTimestampAnalysis10Test.class);
-		performanceCheckProfile.check();
-	};
-
-	@Test
-	public void testWithManyObjects() {
-		System.out.println("Testing teetime (mc) with NUM_OBJECTS_TO_CREATE=" + NUM_OBJECTS_TO_CREATE + ", NUM_NOOP_FILTERS="
-				+ NUM_NOOP_FILTERS + "...");
-
-		final MethodCallThroughputAnalysis10 analysis = new MethodCallThroughputAnalysis10();
-		analysis.setNumNoopFilters(NUM_NOOP_FILTERS);
-		analysis.setTimestampObjects(this.timestampObjects);
-		analysis.setInput(NUM_OBJECTS_TO_CREATE, new ConstructorClosure<TimestampObject>() {
-			@Override
-			public TimestampObject create() {
-				return new TimestampObject();
-			}
-		});
-		analysis.init();
-
-		this.stopWatch.start();
-		try {
-			analysis.start();
-		} finally {
-			this.stopWatch.end();
-		}
-	}
-
-}
diff --git a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java b/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java
deleted file mode 100644
index 70b476ffc2cea8ae1e15a3b66456ffd40dee650c..0000000000000000000000000000000000000000
--- a/src/performancetest/java/teetime/examples/experiment10/MethodCallThroughputAnalysis10.java
+++ /dev/null
@@ -1,103 +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.experiment10;
-
-import java.util.List;
-
-import teetime.framework.OldHeadPipeline;
-import teetime.framework.RunnableProducerStage;
-import teetime.framework.pipe.SingleElementPipe;
-import teetime.stage.CollectorSink;
-import teetime.stage.NoopFilter;
-import teetime.stage.ObjectProducer;
-import teetime.stage.StartTimestampFilter;
-import teetime.stage.StopTimestampFilter;
-import teetime.util.ConstructorClosure;
-import teetime.util.TimestampObject;
-
-/**
- * @author Christian Wulf
- *
- * @since 1.10
- */
-public class MethodCallThroughputAnalysis10 {
-
-	private long numInputObjects;
-	private ConstructorClosure<TimestampObject> inputObjectCreator;
-	private int numNoopFilters;
-	private List<TimestampObject> timestampObjects;
-	private Runnable runnable;
-
-	public void init() {
-		this.runnable = this.buildPipeline();
-	}
-
-	/**
-	 * @param numNoopFilters
-	 * @since 1.10
-	 */
-	private Runnable buildPipeline() {
-		@SuppressWarnings("unchecked")
-		final NoopFilter<TimestampObject>[] noopFilters = new NoopFilter[this.numNoopFilters];
-		// create stages
-		final ObjectProducer<TimestampObject> objectProducer = new ObjectProducer<TimestampObject>(this.numInputObjects, this.inputObjectCreator);
-		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>(this.timestampObjects);
-
-		final OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>> pipeline = new OldHeadPipeline<ObjectProducer<TimestampObject>, CollectorSink<TimestampObject>>();
-		pipeline.setFirstStage(objectProducer);
-		pipeline.setLastStage(collectorSink);
-
-		SingleElementPipe.connect(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
-		SingleElementPipe.connect(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
-		for (int i = 0; i < noopFilters.length - 1; i++) {
-			SingleElementPipe.connect(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
-		}
-		SingleElementPipe.connect(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
-		SingleElementPipe.connect(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
-
-		return new RunnableProducerStage(pipeline);
-	}
-
-	public void start() {
-		this.runnable.run();
-	}
-
-	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<TimestampObject> getTimestampObjects() {
-		return this.timestampObjects;
-	}
-
-	public void setTimestampObjects(final List<TimestampObject> timestampObjects) {
-		this.timestampObjects = timestampObjects;
-	}
-}