diff --git a/.classpath b/.classpath
index 10f8f4aff94dce59ca7ef03cb28bbcf616561d43..9022062d8dfa64335dc564f900678538dac21bd5 100644
--- a/.classpath
+++ b/.classpath
@@ -6,25 +6,25 @@
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="src" path="conf"/>
-	<classpathentry including="**/*.java" kind="src" path="src/test/resources"/>
-	<classpathentry including="**/*.java" kind="src" path="src/main/resources"/>
-	<classpathentry kind="src" path="src/performancetest/java"/>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
+	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
 		<attributes>
+			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
+	<classpathentry kind="src" path="src/performancetest/java"/>
+	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
 		<attributes>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
-	<classpathentry kind="src" output="target/test-classes" path="src/test/java">
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
 		<attributes>
-			<attribute name="optional" value="true"/>
 			<attribute name="maven.pomderived" value="true"/>
 		</attributes>
 	</classpathentry>
+	<classpathentry including="**/*.java" kind="src" path="src/main/resources"/>
+	<classpathentry including="**/*.java" kind="src" path="src/test/resources"/>
+	<classpathentry kind="src" path="conf"/>
 	<classpathentry kind="output" path="target/classes"/>
 </classpath>
diff --git a/results/blade2/Kieker.csv b/experiments/results/blade2/Kieker.csv
similarity index 100%
rename from results/blade2/Kieker.csv
rename to experiments/results/blade2/Kieker.csv
diff --git a/results/blade2/TeeTime.csv b/experiments/results/blade2/TeeTime.csv
similarity index 100%
rename from results/blade2/TeeTime.csv
rename to experiments/results/blade2/TeeTime.csv
diff --git a/results/chw-home/Kieker.csv b/experiments/results/chw-home/Kieker.csv
similarity index 100%
rename from results/chw-home/Kieker.csv
rename to experiments/results/chw-home/Kieker.csv
diff --git a/results/chw-home/TeeTime.csv b/experiments/results/chw-home/TeeTime.csv
similarity index 100%
rename from results/chw-home/TeeTime.csv
rename to experiments/results/chw-home/TeeTime.csv
diff --git a/results/chw-home/i7-3.5GHz-rev-26e53fc3ce9101294bd80a236c2b329e05872f93.txt b/experiments/results/chw-home/i7-3.5GHz-rev-26e53fc3ce9101294bd80a236c2b329e05872f93.txt
similarity index 100%
rename from results/chw-home/i7-3.5GHz-rev-26e53fc3ce9101294bd80a236c2b329e05872f93.txt
rename to experiments/results/chw-home/i7-3.5GHz-rev-26e53fc3ce9101294bd80a236c2b329e05872f93.txt
diff --git a/results/chw-work/Kieker.csv b/experiments/results/chw-work/Kieker.csv
similarity index 100%
rename from results/chw-work/Kieker.csv
rename to experiments/results/chw-work/Kieker.csv
diff --git a/results/chw-work/TeeTime.csv b/experiments/results/chw-work/TeeTime.csv
similarity index 100%
rename from results/chw-work/TeeTime.csv
rename to experiments/results/chw-work/TeeTime.csv
diff --git a/results/evaluation.xlsx b/experiments/results/evaluation.xlsx
similarity index 100%
rename from results/evaluation.xlsx
rename to experiments/results/evaluation.xlsx
diff --git a/results/overhead-findings.txt b/experiments/results/overhead-findings.txt
similarity index 100%
rename from results/overhead-findings.txt
rename to experiments/results/overhead-findings.txt
diff --git a/scripts/MooBench-cmd/.gitignore b/experiments/scripts/MooBench-cmd/.gitignore
similarity index 100%
rename from scripts/MooBench-cmd/.gitignore
rename to experiments/scripts/MooBench-cmd/.gitignore
diff --git a/scripts/MooBench-cmd/META-INF/kieker.aop.xml b/experiments/scripts/MooBench-cmd/META-INF/kieker.aop.xml
similarity index 100%
rename from scripts/MooBench-cmd/META-INF/kieker.aop.xml
rename to experiments/scripts/MooBench-cmd/META-INF/kieker.aop.xml
diff --git a/scripts/MooBench-cmd/META-INF/kieker.legacy.aop.xml b/experiments/scripts/MooBench-cmd/META-INF/kieker.legacy.aop.xml
similarity index 100%
rename from scripts/MooBench-cmd/META-INF/kieker.legacy.aop.xml
rename to experiments/scripts/MooBench-cmd/META-INF/kieker.legacy.aop.xml
diff --git a/scripts/MooBench-cmd/META-INF/kieker.logging.properties b/experiments/scripts/MooBench-cmd/META-INF/kieker.logging.properties
similarity index 100%
rename from scripts/MooBench-cmd/META-INF/kieker.logging.properties
rename to experiments/scripts/MooBench-cmd/META-INF/kieker.logging.properties
diff --git a/scripts/MooBench-cmd/META-INF/kieker.monitoring.properties b/experiments/scripts/MooBench-cmd/META-INF/kieker.monitoring.properties
similarity index 100%
rename from scripts/MooBench-cmd/META-INF/kieker.monitoring.properties
rename to experiments/scripts/MooBench-cmd/META-INF/kieker.monitoring.properties
diff --git a/scripts/MooBench-cmd/MooBench.jar b/experiments/scripts/MooBench-cmd/MooBench.jar
similarity index 100%
rename from scripts/MooBench-cmd/MooBench.jar
rename to experiments/scripts/MooBench-cmd/MooBench.jar
diff --git a/scripts/MooBench-cmd/lib/kieker-1.9_aspectj.jar b/experiments/scripts/MooBench-cmd/lib/kieker-1.9_aspectj.jar
similarity index 100%
rename from scripts/MooBench-cmd/lib/kieker-1.9_aspectj.jar
rename to experiments/scripts/MooBench-cmd/lib/kieker-1.9_aspectj.jar
diff --git a/scripts/MooBench-cmd/startMooBench.cmd b/experiments/scripts/MooBench-cmd/startMooBench.cmd
similarity index 100%
rename from scripts/MooBench-cmd/startMooBench.cmd
rename to experiments/scripts/MooBench-cmd/startMooBench.cmd
diff --git a/scripts/MooBench-cmd/startMooBench.sh b/experiments/scripts/MooBench-cmd/startMooBench.sh
similarity index 100%
rename from scripts/MooBench-cmd/startMooBench.sh
rename to experiments/scripts/MooBench-cmd/startMooBench.sh
diff --git a/scripts/benchmark-kieker-days-ffi.sh b/experiments/scripts/benchmark-kieker-days-ffi.sh
similarity index 100%
rename from scripts/benchmark-kieker-days-ffi.sh
rename to experiments/scripts/benchmark-kieker-days-ffi.sh
diff --git a/scripts/benchmark-kieker-days-kieker.sh b/experiments/scripts/benchmark-kieker-days-kieker.sh
similarity index 100%
rename from scripts/benchmark-kieker-days-kieker.sh
rename to experiments/scripts/benchmark-kieker-days-kieker.sh
diff --git a/scripts/benchmark-kieker-days-teetime.sh b/experiments/scripts/benchmark-kieker-days-teetime.sh
similarity index 100%
rename from scripts/benchmark-kieker-days-teetime.sh
rename to experiments/scripts/benchmark-kieker-days-teetime.sh
diff --git a/scripts/teetime-cmd/lib/kieker-1.9_aspectj.jar b/experiments/scripts/teetime-cmd/lib/kieker-1.9_aspectj.jar
similarity index 100%
rename from scripts/teetime-cmd/lib/kieker-1.9_aspectj.jar
rename to experiments/scripts/teetime-cmd/lib/kieker-1.9_aspectj.jar
diff --git a/scripts/teetime-cmd/startTeetime.cmd b/experiments/scripts/teetime-cmd/startTeetime.cmd
similarity index 100%
rename from scripts/teetime-cmd/startTeetime.cmd
rename to experiments/scripts/teetime-cmd/startTeetime.cmd
diff --git a/scripts/teetime-cmd/startTeetime.sh b/experiments/scripts/teetime-cmd/startTeetime.sh
similarity index 100%
rename from scripts/teetime-cmd/startTeetime.sh
rename to experiments/scripts/teetime-cmd/startTeetime.sh
diff --git a/scripts/teetime-cmd/teetime.jar b/experiments/scripts/teetime-cmd/teetime.jar
similarity index 100%
rename from scripts/teetime-cmd/teetime.jar
rename to experiments/scripts/teetime-cmd/teetime.jar
diff --git a/src/main/java/teetime/framework/pipe/IPipeFactory.java b/src/main/java/teetime/framework/pipe/IPipeFactory.java
index b3fde09beb90469b2d47fcb22967a72f6451c494..48627dbac5369b2ec6d7fa7cb1bf849f333c1955 100644
--- a/src/main/java/teetime/framework/pipe/IPipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/IPipeFactory.java
@@ -10,6 +10,13 @@ public interface IPipeFactory {
 	@Deprecated
 	IPipe create(int capacity);
 
+	/**
+	 * with the default capacity
+	 *
+	 * @param sourcePort
+	 * @param targetPort
+	 * @return
+	 */
 	<T> IPipe create(OutputPort<? extends T> sourcePort, InputPort<T> targetPort);
 
 	<T> IPipe create(OutputPort<? extends T> sourcePort, InputPort<T> targetPort, int capacity);
diff --git a/src/main/java/teetime/framework/pipe/PipeFactory.java b/src/main/java/teetime/framework/pipe/PipeFactory.java
index 87a7e84a7bcb003a72c795a5ee766facf0755be3..fffb32b100b40aeebdab6f62f386695c66af36c9 100644
--- a/src/main/java/teetime/framework/pipe/PipeFactory.java
+++ b/src/main/java/teetime/framework/pipe/PipeFactory.java
@@ -43,25 +43,7 @@ public class PipeFactory {
 		}
 	}
 
-	/**
-	 * Creates a new FIFO-ordered, growable pipe with an initial capacity of 1. <br>
-	 * <i>This method is suitable for most situations.</i>
-	 *
-	 * @param tc
-	 * @return
-	 */
-	public IPipe create(final ThreadCommunication tc) {
-		return this.create(tc, PipeOrdering.QUEUE_BASED, true, 1);
-	}
-
-	/**
-	 *
-	 * @param tc
-	 * @param ordering
-	 * @param growable
-	 * @param capacity
-	 * @return
-	 */
+	@Deprecated
 	public IPipe create(final ThreadCommunication tc, final PipeOrdering ordering, final boolean growable, final int capacity) {
 		IPipeFactory pipeFactory = getPipeFactory(tc, ordering, growable);
 		return pipeFactory.create(capacity);
diff --git a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java
index 9f08e6a519cb16d9bec834cc365cc82106d63a19..8c4ab937fe73bf651c0b9c9f5986601db7b4f102 100644
--- a/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java
+++ b/src/performancetest/java/teetime/examples/ChwHomeComparisonMethodcallWithPorts.java
@@ -24,31 +24,31 @@ public class ChwHomeComparisonMethodcallWithPorts implements PerformanceCheckPro
 		}
 
 		PerformanceResult test1 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
+				.get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
 		PerformanceResult test9 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
+				.get("testWithManyObjects(teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
 		PerformanceResult test10 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
+				.get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
 		PerformanceResult test11 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
+				.get("testWithManyObjects(teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
 		PerformanceResult test14 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
+				.get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
 		PerformanceResult test15 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
+				.get("testWithManyObjects(teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
 		PerformanceResult test16a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test17 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
+				.get("testWithManyObjects(teetime.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
 		PerformanceResult test19a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 
 		double value14 = (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5);
 		double value10 = (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5);
diff --git a/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java
index 38d93b5637160343a12942ba65c50af2a1797d84..7e2bf8468ab9dde7b7c16a80dbbf93fa7d6ea611 100644
--- a/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java
+++ b/src/performancetest/java/teetime/examples/ChwWorkComparisonMethodcallWithPorts.java
@@ -24,31 +24,31 @@ public class ChwWorkComparisonMethodcallWithPorts implements PerformanceCheckPro
 		}
 
 		PerformanceResult test1 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
+				.get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
 		PerformanceResult test9 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
+				.get("testWithManyObjects(teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
 		PerformanceResult test10 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
+				.get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
 		PerformanceResult test11 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
+				.get("testWithManyObjects(teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
 		PerformanceResult test14 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
+				.get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
 		PerformanceResult test15 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
+				.get("testWithManyObjects(teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
 		PerformanceResult test16a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test17 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
+				.get("testWithManyObjects(teetime.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
 		PerformanceResult test19a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 
 		double value14 = (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5);
 		double value10 = (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5);
diff --git a/src/performancetest/java/teetime/examples/NieWorkComparisonMethodcallWithPorts.java b/src/performancetest/java/teetime/examples/NieWorkComparisonMethodcallWithPorts.java
index e3d61d8837ed6968980288d42375767dce84dcfa..bb3c2f6c434264d7fa5283d4ad4d4cf1b4e31ef9 100644
--- a/src/performancetest/java/teetime/examples/NieWorkComparisonMethodcallWithPorts.java
+++ b/src/performancetest/java/teetime/examples/NieWorkComparisonMethodcallWithPorts.java
@@ -24,31 +24,31 @@ public class NieWorkComparisonMethodcallWithPorts implements PerformanceCheckPro
 		}
 
 		PerformanceResult test1 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
+				.get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
 		PerformanceResult test9 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
+				.get("testWithManyObjects(teetime.examples.experiment09.MethodCallThoughputTimestampAnalysis9Test)");
 		PerformanceResult test10 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
+				.get("testWithManyObjects(teetime.examples.experiment10.MethodCallThoughputTimestampAnalysis10Test)");
 		PerformanceResult test11 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
+				.get("testWithManyObjects(teetime.examples.experiment11.MethodCallThoughputTimestampAnalysis11Test)");
 		PerformanceResult test14 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
+				.get("testWithManyObjects(teetime.examples.experiment14.MethodCallThoughputTimestampAnalysis14Test)");
 		PerformanceResult test15 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
+				.get("testWithManyObjects(teetime.examples.experiment15.MethodCallThoughputTimestampAnalysis15Test)");
 		PerformanceResult test16a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test17 = performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcallWithPorts.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
+				.get("testWithManyObjects(teetime.examples.experiment17.MethodCallThoughputTimestampAnalysis17Test)");
 		PerformanceResult test19a = performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19b = performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 		PerformanceResult test19c = performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment19.MethodCallThoughputTimestampAnalysis19Test)");
 
 		assertEquals(67, (double) test14.quantiles.get(0.5) / test1.quantiles.get(0.5), 5.1);
 		assertEquals(14, (double) test10.quantiles.get(0.5) / test1.quantiles.get(0.5), 2.1);
diff --git a/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java
index 46a7a2383f0332c8969edeb93589be88ed107792..525abdb84b7630dd8c3da6355b8dbef9e1af098b 100644
--- a/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java
+++ b/src/performancetest/java/teetime/examples/experiment01/ChwHomePerformanceCheck.java
@@ -15,7 +15,7 @@ public class ChwHomePerformanceCheck implements PerformanceCheckProfile {
 	@Override
 	public void check() {
 		PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
+				.get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
 
 		assertEquals(292, test01.quantiles.get(0.5), 1);
 	}
diff --git a/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java
index eb2f4fdf68851a3877e65f25b5d7484681edf3ab..3229033091c918d7556168a446dab9804066be19 100644
--- a/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java
+++ b/src/performancetest/java/teetime/examples/experiment01/ChwWorkPerformanceCheck.java
@@ -15,7 +15,7 @@ public class ChwWorkPerformanceCheck implements PerformanceCheckProfile {
 	@Override
 	public void check() {
 		PerformanceResult test01 = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjects(teetime.variant.methodcall.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
+				.get("testWithManyObjects(teetime.examples.experiment01.MethodCallThoughputTimestampAnalysis1Test)");
 
 		assertEquals(410, test01.quantiles.get(0.5), 1);
 	}
diff --git a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
index f2bfdf3521d0483180461988cbe21a848ca83d7c..3b32e2bdadd7c333e92dda19187ec7e673eb8e3c 100644
--- a/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
+++ b/src/performancetest/java/teetime/examples/experiment14/MethodCallThroughputAnalysis14.java
@@ -21,8 +21,9 @@ import teetime.framework.HeadPipeline;
 import teetime.framework.HeadStage;
 import teetime.framework.OldAnalysis;
 import teetime.framework.RunnableStage;
-import teetime.framework.pipe.IPipe;
+import teetime.framework.pipe.IPipeFactory;
 import teetime.framework.pipe.PipeFactory;
+import teetime.framework.pipe.PipeFactory.PipeOrdering;
 import teetime.framework.pipe.PipeFactory.ThreadCommunication;
 import teetime.stage.CollectorSink;
 import teetime.stage.NoopFilter;
@@ -74,18 +75,15 @@ public class MethodCallThroughputAnalysis14 extends OldAnalysis {
 		pipeline.setFirstStage(objectProducer);
 		pipeline.setLastStage(collectorSink);
 
-		IPipe pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
-		pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
+		IPipeFactory factory = this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.QUEUE_BASED, true);
+
+		factory.create(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
+		factory.create(startTimestampFilter.getOutputPort(), noopFilters[0].getInputPort());
 		for (int i = 0; i < noopFilters.length - 1; i++) {
-			pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-			pipe.connectPorts(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
+			factory.create(noopFilters[i].getOutputPort(), noopFilters[i + 1].getInputPort());
 		}
-		pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
-		pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
+		factory.create(noopFilters[noopFilters.length - 1].getOutputPort(), stopTimestampFilter.getInputPort());
+		factory.create(stopTimestampFilter.getOutputPort(), collectorSink.getInputPort());
 
 		return pipeline;
 	}
diff --git a/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java
index 5aaaeb739180ee4b78dff89e5ef5c2f34ea46bd0..a3106094fb720993ecbd804ef6ad7cc67d58c0be 100644
--- a/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java
+++ b/src/performancetest/java/teetime/examples/experiment16/ChwHomePerformanceCheck.java
@@ -15,11 +15,11 @@ public class ChwHomePerformanceCheck implements PerformanceCheckProfile {
 	@Override
 	public void check() {
 		PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		// check speedup
 		double speedupB = (double) test16a.overallDurationInNs / test16b.overallDurationInNs;
 		double speedupC = (double) test16a.overallDurationInNs / test16c.overallDurationInNs;
diff --git a/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java b/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java
index d06138614b9fa319bcd662166360bb493b823b4b..eba4502dfcf156fbc90d99838d11d0da4ca768f3 100644
--- a/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java
+++ b/src/performancetest/java/teetime/examples/experiment16/ChwWorkPerformanceCheck.java
@@ -10,11 +10,11 @@ public class ChwWorkPerformanceCheck implements PerformanceCheckProfile {
 	@Override
 	public void check() {
 		PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults
-				.get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+				.get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 		// check speedup
 		double speedupB = (double) test16a.overallDurationInNs / test16b.overallDurationInNs;
 		double speedupC = (double) test16a.overallDurationInNs / test16c.overallDurationInNs;
diff --git a/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java b/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
index 50e2ac9120513aa01acdac461d66d95bb89521d7..32f76c6039eca899468fc0ffea2bdcec470da6b0 100644
--- a/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
+++ b/src/performancetest/java/teetime/examples/experiment19/MethodCallThoughputTimestampAnalysis19Test.java
@@ -52,11 +52,11 @@ public class MethodCallThoughputTimestampAnalysis19Test extends PerformanceTest
 	// @AfterClass
 	// public static void afterClass() {
 	// PerformanceResult test16a = PerformanceTest.measurementRepository.performanceResults
-	// .get("testWithManyObjectsAnd1Thread(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+	// .get("testWithManyObjectsAnd1Thread(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 	// PerformanceResult test16b = PerformanceTest.measurementRepository.performanceResults
-	// .get("testWithManyObjectsAnd2Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+	// .get("testWithManyObjectsAnd2Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 	// PerformanceResult test16c = PerformanceTest.measurementRepository.performanceResults
-	// .get("testWithManyObjectsAnd4Threads(teetime.variant.methodcallWithPorts.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
+	// .get("testWithManyObjectsAnd4Threads(teetime.examples.experiment16.MethodCallThoughputTimestampAnalysis16Test)");
 	// // check speedup
 	// assertEquals(2, (double) test16a.overallDurationInNs / test16b.overallDurationInNs, 0.2);
 	// assertEquals(2.5, (double) test16a.overallDurationInNs / test16c.overallDurationInNs, 0.2);
diff --git a/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java b/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java
index 31f63113591ac793a7aed93313c5ae9c61461a2c..348fca73b12cf185fb00ccdb2075cd2a4f3dcc78 100644
--- a/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java
+++ b/src/performancetest/java/teetime/examples/loopStage/LoopStageAnalysisConfiguration.java
@@ -1,18 +1,22 @@
 package teetime.examples.loopStage;
 
 import teetime.framework.AnalysisConfiguration;
+import teetime.framework.pipe.IPipeFactory;
 import teetime.framework.pipe.PipeFactory;
+import teetime.framework.pipe.PipeFactory.PipeOrdering;
 import teetime.framework.pipe.PipeFactory.ThreadCommunication;
 
 import teetime.examples.loopStage.Countdown;
 
 public class LoopStageAnalysisConfiguration extends AnalysisConfiguration {
 
+	private final PipeFactory pipeFactory = PipeFactory.INSTANCE;
+
 	public LoopStageAnalysisConfiguration() {
 		Countdown countdown = new Countdown(10);
 
-		PipeFactory.INSTANCE.create(ThreadCommunication.INTRA)
-				.connectPorts(countdown.getNewCountdownOutputPort(), countdown.getCountdownInputPort());
+		IPipeFactory factory = this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.QUEUE_BASED, true);
+		factory.create(countdown.getNewCountdownOutputPort(), countdown.getCountdownInputPort());
 
 		this.getFiniteProducerStages().add(countdown);
 	}
diff --git a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
index 8e849b55fd97169f037d424f16ba0c0ec9b79b1c..99e8e04bf50349e97abce274dce041e8fa162566 100644
--- a/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
+++ b/src/performancetest/java/teetime/examples/traceReconstructionWithThreads/ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest.java
@@ -81,7 +81,7 @@ public class ChwWorkTcpTraceReconstructionAnalysisWithThreadsTest {
 	// Median trace throughput: 42 traces/time unit
 	// Duration: 21614 ms
 
-	// [2014-07-04 01:06:10 PM] WARNUNG: Reader interrupted (teetime.variant.methodcallWithPorts.stage.io.TCPReader$TCPStringReader run)
+	// [2014-07-04 01:06:10 PM] WARNUNG: Reader interrupted (teetime.stage.io.TCPReader$TCPStringReader run)
 	// Max size of tcp-relay pipe: 167758
 	// Median trace throughput: 6 traces/time unit
 	// Duration: 22373 ms
diff --git a/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java b/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java
index e30d4da4778d4c0114e6f73471c6f7323b00dec1..3caa3cf553562ed30dc35d3da1c9450cfc752e6f 100644
--- a/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java
+++ b/src/performancetest/java/teetime/runtime/typeCheck/ConnectionTypeTest.java
@@ -8,8 +8,9 @@ import java.lang.reflect.InvocationTargetException;
 
 import org.junit.Test;
 
-import teetime.framework.pipe.IPipe;
+import teetime.framework.pipe.IPipeFactory;
 import teetime.framework.pipe.PipeFactory;
+import teetime.framework.pipe.PipeFactory.PipeOrdering;
 import teetime.framework.pipe.PipeFactory.ThreadCommunication;
 import teetime.stage.ObjectProducer;
 import teetime.stage.PortTypeConfiguration;
@@ -46,12 +47,10 @@ public class ConnectionTypeTest {
 		StopTimestampFilter stopTimestampFilter = StopTimestampFilter.class.newInstance();
 		Sink sink = Sink.class.newInstance();
 
-		IPipe pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
-		pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(startTimestampFilter.getOutputPort(), stopTimestampFilter.getInputPort());
-		pipe = this.pipeFactory.create(ThreadCommunication.INTRA);
-		pipe.connectPorts(stopTimestampFilter.getOutputPort(), sink.getInputPort());
+		IPipeFactory factory = this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.QUEUE_BASED, true);
+		factory.create(objectProducer.getOutputPort(), startTimestampFilter.getInputPort());
+		factory.create(startTimestampFilter.getOutputPort(), stopTimestampFilter.getInputPort());
+		factory.create(stopTimestampFilter.getOutputPort(), sink.getInputPort());
 
 		// TypeVariable<Class<ObjectProducer>>[] objectProducerTypeParameters = ObjectProducer.class.getTypeParameters();
 		// for (TypeVariable<Class<ObjectProducer>> typeVariable : objectProducerTypeParameters) {
@@ -60,7 +59,7 @@ public class ConnectionTypeTest {
 		// System.out.println(typeVariable.getBounds()[0]); // ->class java.lang.Object
 		// System.out.println(typeVariable.getName()); // ->T
 		// System.out.println(typeVariable.getClass()); // ->class sun.reflect.generics.reflectiveObjects.TypeVariableImpl
-		// System.out.println(typeVariable.getGenericDeclaration()); // ->class teetime.variant.methodcallWithPorts.stage.ObjectProducer
+		// System.out.println(typeVariable.getGenericDeclaration()); // ->class teetime.stage.ObjectProducer
 		// }
 		//
 		// Class<?> currentClass = objectProducer.getClass();
diff --git a/src/test/resources/logback-test.groovy b/src/test/resources/logback-test.groovy
index 23fb52cc7cb9f7124829f42562d8e7e8b016d41c..b156267877d2adb27470de0d9b9e58c7d6d116a8 100644
--- a/src/test/resources/logback-test.groovy
+++ b/src/test/resources/logback-test.groovy
@@ -21,4 +21,5 @@ appender("CONSOLE", ConsoleAppender) {
 
 root ERROR, ["CONSOLE"]
 
+logger "teetime.variant.methodcallWithPorts.stage", INFO
 logger "util", INFO
\ No newline at end of file