diff --git a/src/main/java/teetime/framework/Execution.java b/src/main/java/teetime/framework/Execution.java
index f0242ad11fba4272589e13aca3838177da4b41ff..53e733e3f86ef5bc7b19c573ea894293a53e2478 100644
--- a/src/main/java/teetime/framework/Execution.java
+++ b/src/main/java/teetime/framework/Execution.java
@@ -22,6 +22,9 @@ import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Set;
 
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import teetime.framework.signal.ValidatingSignal;
 import teetime.framework.validation.AnalysisNotValidException;
 
@@ -41,7 +44,7 @@ import teetime.framework.validation.AnalysisNotValidException;
  */
 public final class Execution<T extends Configuration> {
 
-	// private static final Logger LOGGER = LoggerFactory.getLogger(Execution.class);
+	private static final Logger LOGGER = LoggerFactory.getLogger(Execution.class);
 
 	private final T configuration;
 	private final ConfigurationContext configurationContext;
@@ -177,13 +180,11 @@ public final class Execution<T extends Configuration> {
 					instances.add((Configuration) obj);
 				}
 			} catch (ClassNotFoundException e) {
-				System.out.println("Could not find class: " + each);
+				LOGGER.error("Could not find class " + each);
 			} catch (InstantiationException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
+				LOGGER.error("Could not instantiate class " + each, e);
 			} catch (IllegalAccessException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
+				LOGGER.error("IllegalAccessException arised while instantiating class " + each, e);
 			}
 		}
 		return instances;
diff --git a/src/test/java/teetime/framework/RunnerConfig.java b/src/test/java/teetime/framework/RunnerConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..b61674a7224c7efad31f23fa16fe4ecf36db8166
--- /dev/null
+++ b/src/test/java/teetime/framework/RunnerConfig.java
@@ -0,0 +1,22 @@
+package teetime.framework;
+
+import teetime.stage.InitialElementProducer;
+
+public class RunnerConfig extends Configuration {
+
+	public static boolean executed = false;
+
+	public RunnerConfig() {
+		connectPorts(new InitialElementProducer<Object>(new Object()).getOutputPort(), new StaticSetter().getInputPort());
+	}
+
+	private class StaticSetter extends AbstractConsumerStage<Object> {
+
+		@Override
+		protected void execute(final Object element) {
+			executed = true;
+		}
+
+	}
+
+}
diff --git a/src/test/java/teetime/framework/RunnerTest.java b/src/test/java/teetime/framework/RunnerTest.java
index 3b5f45c1d743537221efc513be259e30e90d4cbf..f3c1f96f48c28e989f27747b904927d7fa4370d2 100644
--- a/src/test/java/teetime/framework/RunnerTest.java
+++ b/src/test/java/teetime/framework/RunnerTest.java
@@ -1,12 +1,17 @@
 package teetime.framework;
 
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
 import org.junit.Test;
 
 public class RunnerTest {
 
 	@Test
 	public void test() {
-		Execution.main(new String[] { "teetime.framework.CompositeProducerConfig" });
+		assertFalse(RunnerConfig.executed);
+		Execution.main(new String[] { "teetime.framework.RunnerConfig" });
+		assertTrue(RunnerConfig.executed);
 	}
 
 }