diff --git a/src/main/java/teetime/framework/AnalysisConfiguration.java b/src/main/java/teetime/framework/AnalysisConfiguration.java
index ef5ae8a4bd7df6c67d878c709bba15dfcf039455..71441436e1e9843d18dc7142843ca79f9a0b7562 100644
--- a/src/main/java/teetime/framework/AnalysisConfiguration.java
+++ b/src/main/java/teetime/framework/AnalysisConfiguration.java
@@ -26,6 +26,9 @@ import teetime.framework.pipe.PipeFactoryRegistry;
  */
 public abstract class AnalysisConfiguration {
 
+	/**
+	 * Can be used by subclasses, to obtain pipe factories
+	 */
 	protected static final PipeFactoryRegistry PIPE_FACTORY_REGISTRY = PipeFactoryRegistry.INSTANCE;
 	private final List<Stage> threadableStageJobs = new LinkedList<Stage>();
 
@@ -39,7 +42,7 @@ public abstract class AnalysisConfiguration {
 	 * @param stage
 	 *            A arbitrary stage, which will be added to the configuration und executed in a thread.
 	 */
-	public void addThreadableStage(final Stage stage) {
+	protected void addThreadableStage(final Stage stage) {
 		this.threadableStageJobs.add(stage);
 	}
 
diff --git a/src/main/java/teetime/framework/CompositeStage.java b/src/main/java/teetime/framework/CompositeStage.java
index 4765fe8732ddd8673de456815fc0d1e410208bf8..210ecd4c6e685ac8bfd3cd5da978b4a55f46e47d 100644
--- a/src/main/java/teetime/framework/CompositeStage.java
+++ b/src/main/java/teetime/framework/CompositeStage.java
@@ -35,7 +35,7 @@ import teetime.framework.validation.InvalidPortConnection;
 @SuppressWarnings("PMD.AbstractNaming")
 public abstract class CompositeStage extends Stage {
 
-	protected static final IPipeFactory INTRA_PIPE_FACTORY = PipeFactoryRegistry.INSTANCE
+	private static final IPipeFactory INTRA_PIPE_FACTORY = PipeFactoryRegistry.INSTANCE
 			.getPipeFactory(ThreadCommunication.INTRA, PipeOrdering.ARBITRARY, false);
 
 	protected abstract Stage getFirstStage();
diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java
index 733d3be8aeef1404520f9d8a24166ff4d70b973e..9aa93ec762f7338a4431554c85f4588253760c06 100644
--- a/src/main/java/teetime/stage/InitialElementProducer.java
+++ b/src/main/java/teetime/stage/InitialElementProducer.java
@@ -19,7 +19,7 @@ import teetime.framework.AbstractProducerStage;
 
 public final class InitialElementProducer<T> extends AbstractProducerStage<T> {
 
-	private final T[] elements;
+	private T[] elements;
 
 	public InitialElementProducer(final T... elements) {
 		this.elements = elements;
@@ -33,4 +33,16 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> {
 		this.terminate();
 	}
 
+	public void setIter(final T[] elements) {
+		this.elements = elements;
+	}
+
+	@Override
+	public void onStarting() throws Exception {
+		if (elements == null) {
+			throw new NullPointerException("iter must not be null");
+		}
+		super.onStarting();
+	}
+
 }
diff --git a/src/main/java/teetime/stage/IterableProducer.java b/src/main/java/teetime/stage/IterableProducer.java
index a14959a05d6f727a51b9abeb28390ffd041dc3e0..3f85021ac9ae88710ac153124c659ca51e81f5ef 100644
--- a/src/main/java/teetime/stage/IterableProducer.java
+++ b/src/main/java/teetime/stage/IterableProducer.java
@@ -17,20 +17,32 @@ package teetime.stage;
 
 import teetime.framework.AbstractProducerStage;
 
-public final class IterableProducer<O extends Iterable<T>, T> extends AbstractProducerStage<T> {
+public final class IterableProducer<T> extends AbstractProducerStage<T> {
 
-	private O iter = null;
+	private Iterable<T> iter;
 
-	public IterableProducer(final O iter) {
+	public <O extends Iterable<T>> IterableProducer(final O iter) {
 		this.iter = iter;
 	}
 
 	@Override
 	protected void execute() {
-		for (T i : iter) {
-			outputPort.send(i);
+		for (final T i : this.iter) {
+			this.outputPort.send(i);
 		}
 
 	}
 
+	public void setIter(final Iterable<T> iter) {
+		this.iter = iter;
+	}
+
+	@Override
+	public void onStarting() throws Exception {
+		if (iter == null) {
+			throw new NullPointerException("iter must not be null");
+		}
+		super.onStarting();
+	}
+
 }