diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderAnalysisTest.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderAnalysisTest.java
index a1f21503364416c931028dcb0657ec8b06f41043..94776b9fece3a6d2380e76b1ec985b1043b8b413 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderAnalysisTest.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderAnalysisTest.java
@@ -53,7 +53,6 @@ public class RecordReaderAnalysisTest {
 	@Test
 	public void performAnalysis() {
 		final RecordReaderConfiguration configuration = new RecordReaderConfiguration();
-		configuration.buildConfiguration();
 
 		Analysis analysis = new Analysis(configuration);
 		analysis.init();
diff --git a/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderConfiguration.java b/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderConfiguration.java
index 85f48da54d16ed3f604ddc3dc6f4c8011b01b2a4..34af107b20ff59ca304e511d25ba0f8cfb0ff8ac 100644
--- a/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderConfiguration.java
+++ b/src/test/java/teetime/variant/methodcallWithPorts/examples/recordReader/RecordReaderConfiguration.java
@@ -20,7 +20,7 @@ import java.util.LinkedList;
 import java.util.List;
 
 import teetime.variant.methodcallWithPorts.framework.core.Configuration;
-import teetime.variant.methodcallWithPorts.framework.core.HeadPipeline;
+import teetime.variant.methodcallWithPorts.framework.core.HeadStage;
 import teetime.variant.methodcallWithPorts.framework.core.pipe.PipeFactory;
 import teetime.variant.methodcallWithPorts.framework.core.pipe.PipeFactory.PipeOrdering;
 import teetime.variant.methodcallWithPorts.framework.core.pipe.PipeFactory.ThreadCommunication;
@@ -41,12 +41,16 @@ public class RecordReaderConfiguration extends Configuration {
 	private final List<IMonitoringRecord> elementCollection = new LinkedList<IMonitoringRecord>();
 	private final PipeFactory pipeFactory = PipeFactory.INSTANCE;
 
-	public void buildConfiguration() {
-		HeadPipeline<?, ?> producerPipeline = this.buildProducerPipeline();
+	public RecordReaderConfiguration() {
+		this.buildConfiguration();
+	}
+
+	private void buildConfiguration() {
+		HeadStage producerPipeline = this.buildProducerPipeline();
 		this.getFiniteProducerStages().add(producerPipeline);
 	}
 
-	private HeadPipeline<?, ?> buildProducerPipeline() {
+	private HeadStage buildProducerPipeline() {
 		ClassNameRegistryRepository classNameRegistryRepository = new ClassNameRegistryRepository();
 		File logDir = new File("src/test/data/bookstore-logs");
 		// create stages
@@ -54,17 +58,14 @@ public class RecordReaderConfiguration extends Configuration {
 		Dir2RecordsFilter dir2RecordsFilter = new Dir2RecordsFilter(classNameRegistryRepository);
 		CollectorSink<IMonitoringRecord> collector = new CollectorSink<IMonitoringRecord>(this.elementCollection);
 
-		final HeadPipeline<InitialElementProducer<File>, CollectorSink<IMonitoringRecord>> pipeline = new HeadPipeline<InitialElementProducer<File>, CollectorSink<IMonitoringRecord>>();
-		pipeline.setFirstStage(initialElementProducer);
-		pipeline.setLastStage(collector);
-
-		this.pipeFactory.create(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false, 1)
-				.connectPorts(initialElementProducer.getOutputPort(), dir2RecordsFilter.getInputPort());
+		// connect stages
+		this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false)
+				.create(initialElementProducer.getOutputPort(), dir2RecordsFilter.getInputPort(), 1);
 
-		this.pipeFactory.create(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false, 1)
-				.connectPorts(dir2RecordsFilter.getOutputPort(), collector.getInputPort());
+		this.pipeFactory.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false)
+				.create(dir2RecordsFilter.getOutputPort(), collector.getInputPort(), 1);
 
-		return pipeline;
+		return initialElementProducer;
 	}
 
 	public List<IMonitoringRecord> getElementCollection() {