diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java
index d29d675ead1e5f47c71db3d2a43faba931dfd455..86f42f8ba140c1b1bdd503b98e5ce831330416f1 100644
--- a/src/main/java/teetime/stage/InitialElementProducer.java
+++ b/src/main/java/teetime/stage/InitialElementProducer.java
@@ -19,23 +19,24 @@ import java.util.Arrays;
 
 import teetime.framework.AbstractProducerStage;
 
-public final class InitialElementProducer<T> extends AbstractProducerStage<T> {
+public class InitialElementProducer<T> extends AbstractProducerStage<T> {
 
-	private Iterable<T> elements;
+	private final Iterable<T> elements;
 
 	public InitialElementProducer(final T... elements) {
-		this.elements = Arrays.asList(elements);
+		this(Arrays.asList(elements));
 	}
 
 	public InitialElementProducer(final Iterable<T> elements) {
+		if (elements == null) {
+			throw new IllegalArgumentException("The given iterable must not be null");
+		}
 		this.elements = elements;
 	}
 
 	@Override
 	public void onStarting() throws Exception {
-		if (elements == null) {
-			throw new IllegalArgumentException("The given iterable must not be null");
-		}
+
 		super.onStarting();
 	}
 
@@ -47,12 +48,4 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> {
 		this.terminate();
 	}
 
-	public void setIter(final T... elements) {
-		this.elements = Arrays.asList(elements);
-	}
-
-	public void setIter(final Iterable<T> elements) {
-		this.elements = elements;
-	}
-
 }
diff --git a/src/test/java/teetime/stage/InitialElementProducerTest.java b/src/test/java/teetime/stage/InitialElementProducerTest.java
index ad9e03b4bff52807ebac4d2419001606af0149ae..9c96b14f42da3c9f46bcb22fdefd59b950e36159 100644
--- a/src/test/java/teetime/stage/InitialElementProducerTest.java
+++ b/src/test/java/teetime/stage/InitialElementProducerTest.java
@@ -31,45 +31,37 @@ import org.junit.Test;
  */
 public class InitialElementProducerTest {
 
-	private InitialElementProducer<Integer> producer;
-
-	// @Before
-	public void initializeProducer() {
-		producer = new InitialElementProducer<Integer>();
-	}
-
 	@Test
 	public void producerShouldByDefaultSendNothing() {
-		initializeProducer();
+		InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>();
 		List<Integer> results = new ArrayList<Integer>();
 
 		test(producer).and().receive(results).from(producer.getOutputPort()).start();
 		assertThat(results, is(empty()));
 	}
 
-	@Test
-	public void testSetIterArray() {
-		initializeProducer();
-		producer.setIter(new Integer[] { 1, 2, 3 });
-		List<Integer> results = new ArrayList<Integer>();
-
-		test(producer).and().receive(results).from(producer.getOutputPort()).start();
-		assertThat(results, contains(1, 2, 3));
-	}
-
-	@Test
-	public void testSetIterVarargs() {
-		initializeProducer();
-		producer.setIter(1, 2, 3);
-		List<Integer> results = new ArrayList<Integer>();
-
-		test(producer).and().receive(results).from(producer.getOutputPort()).start();
-		assertThat(results, contains(1, 2, 3));
-	}
+	// @Test
+	// public void testSetIterArray() {
+	// InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 });
+	//
+	// List<Integer> results = new ArrayList<Integer>();
+	//
+	// test(producer).and().receive(results).from(producer.getOutputPort()).start();
+	// assertThat(results, contains(1, 2, 3));
+	// }
+	//
+	// @Test
+	// public void testSetIterVarargs() {
+	// InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3);
+	// List<Integer> results = new ArrayList<Integer>();
+	//
+	// test(producer).and().receive(results).from(producer.getOutputPort()).start();
+	// assertThat(results, contains(1, 2, 3));
+	// }
 
 	@Test
 	public void instantiateWithArray() {
-		producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 });
+		InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(new Integer[] { 1, 2, 3 });
 		List<Integer> results = new ArrayList<Integer>();
 
 		test(producer).and().receive(results).from(producer.getOutputPort()).start();
@@ -78,7 +70,7 @@ public class InitialElementProducerTest {
 
 	@Test
 	public void instantiateWithVarargs() {
-		producer = new InitialElementProducer<Integer>(1, 2, 3);
+		InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(1, 2, 3);
 		List<Integer> results = new ArrayList<Integer>();
 
 		test(producer).and().receive(results).from(producer.getOutputPort()).start();
@@ -91,7 +83,7 @@ public class InitialElementProducerTest {
 		testIntegers.add(1);
 		testIntegers.add(2);
 		testIntegers.add(3);
-		producer = new InitialElementProducer<Integer>(testIntegers);
+		InitialElementProducer<Integer> producer = new InitialElementProducer<Integer>(testIntegers);
 		List<Integer> results = new ArrayList<Integer>();
 
 		test(producer).and().receive(results).from(producer.getOutputPort()).start();