diff --git a/src/main/java/teetime/stage/InitialElementProducer.java b/src/main/java/teetime/stage/InitialElementProducer.java
index 21fc37fdc9e7f7bf7332bc126e888e9a530da6c3..1fe395f616f968ddfa2794244a6c8ecb79765a8e 100644
--- a/src/main/java/teetime/stage/InitialElementProducer.java
+++ b/src/main/java/teetime/stage/InitialElementProducer.java
@@ -16,7 +16,6 @@
 package teetime.stage;
 
 import java.util.Arrays;
-import java.util.List;
 
 import teetime.framework.AbstractProducerStage;
 
@@ -56,19 +55,4 @@ public final class InitialElementProducer<T> extends AbstractProducerStage<T> {
 		this.elements = elements;
 	}
 
-	public static void main(final String[] args) {
-		// int[] array = new int[] { 0, 0, 0 };
-		// new IterableProducer<Integer>(array);
-		//
-		// new InitialElementProducer<Integer>(array);
-
-		Integer[] array = new Integer[] { 0, 0, 0 };
-		new InitialElementProducer<Integer>(array);
-
-		new InitialElementProducer<Integer>(0, 0, 0);
-
-		List<Integer> iterable = Arrays.asList(0, 0, 0);
-		new InitialElementProducer<Integer>(iterable);
-	}
-
 }
diff --git a/src/test/java/teetime/stage/InitialElementProducerTest.java b/src/test/java/teetime/stage/InitialElementProducerTest.java
index c748a9bdc971445b76edce2cb67800cd54145ce6..5667be30ab0836949341b7e260fbbf7b5f99cca7 100644
--- a/src/test/java/teetime/stage/InitialElementProducerTest.java
+++ b/src/test/java/teetime/stage/InitialElementProducerTest.java
@@ -24,7 +24,6 @@ import static teetime.framework.test.StageTester.test;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.junit.Before;
 import org.junit.Test;
 
 /**
@@ -34,13 +33,14 @@ public class InitialElementProducerTest {
 
 	private InitialElementProducer<Integer> producer;
 
-	@Before
+	// @Before
 	public void initializeProducer() {
 		producer = new InitialElementProducer<Integer>();
 	}
 
 	@Test
 	public void producerShouldByDefaultSendNothing() {
+		initializeProducer();
 		List<Integer> results = new ArrayList<Integer>();
 
 		test(producer).and().receive(results).from(producer.getOutputPort()).start();
@@ -48,7 +48,8 @@ public class InitialElementProducerTest {
 	}
 
 	@Test
-	public void producerShouldSendDefinedValues() {
+	public void testSetIterArray() {
+		initializeProducer();
 		producer.setIter(new Integer[] { 1, 2, 3 });
 		List<Integer> results = new ArrayList<Integer>();
 
@@ -56,4 +57,44 @@ public class InitialElementProducerTest {
 		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 instantiateWithArray() {
+		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 instantiateWithVarargs() {
+		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 instantiateWithIterable() {
+		List<Integer> test = new ArrayList<Integer>();
+		test.add(1);
+		test.add(2);
+		test.add(3);
+		producer = new InitialElementProducer<Integer>(test);
+		List<Integer> results = new ArrayList<Integer>();
+
+		test(producer).and().receive(results).from(producer.getOutputPort()).start();
+		assertThat(results, contains(1, 2, 3));
+	}
 }