diff --git a/src/main/java/teetime/framework/AbstractConsumerStage.java b/src/main/java/teetime/framework/AbstractConsumerStage.java
index c8935aa9edb2ab0fe6125035b3e698876be87224..f5a8a584136cc1cd64e831e4cbd0a01e3c16e6a3 100644
--- a/src/main/java/teetime/framework/AbstractConsumerStage.java
+++ b/src/main/java/teetime/framework/AbstractConsumerStage.java
@@ -27,7 +27,7 @@ public abstract class AbstractConsumerStage<I> extends AbstractStage {
 	}
 
 	@Override
-	public final void executeStage() {
+	protected final void executeStage() {
 		final I element = this.getInputPort().receive();
 		if (null == element) {
 			returnNoElement();
diff --git a/src/main/java/teetime/framework/AbstractProducerStage.java b/src/main/java/teetime/framework/AbstractProducerStage.java
index 8ee88e594d98c843eaddd0e5c0ed397de0b548e3..783fafb9bc7cbbfa1f0b69e97de21182d51e3542 100644
--- a/src/main/java/teetime/framework/AbstractProducerStage.java
+++ b/src/main/java/teetime/framework/AbstractProducerStage.java
@@ -36,7 +36,7 @@ public abstract class AbstractProducerStage<O> extends AbstractStage {
 	}
 
 	@Override
-	public void executeStage() {
+	protected void executeStage() {
 		try {
 			this.execute();
 		} catch (Exception e) {
diff --git a/src/main/java/teetime/framework/AbstractStage.java b/src/main/java/teetime/framework/AbstractStage.java
index 96b71bb44ff3d4f9e3d5964a5cdad53f233bfff8..944df4021f781b44ee69921da014babaf75568a2 100644
--- a/src/main/java/teetime/framework/AbstractStage.java
+++ b/src/main/java/teetime/framework/AbstractStage.java
@@ -33,7 +33,7 @@ public abstract class AbstractStage extends Stage {
 
 	private InputPort<?>[] inputPorts = new InputPort<?>[0];
 	private OutputPort<?>[] outputPorts = new OutputPort<?>[0];
-	private StageState currentState = StageState.CREATED;
+	private StageState currentState = StageState.NOT_INITIALIZED;
 
 	@Override
 	public InputPort<?>[] getInputPorts() {
@@ -73,18 +73,18 @@ public abstract class AbstractStage extends Stage {
 	 * @return <code>true</code> if this stage has already received the given <code>signal</code>, <code>false</code> otherwise
 	 */
 	protected boolean signalAlreadyReceived(final ISignal signal, final InputPort<?> inputPort) {
-		if (this.triggeredSignals.contains(signal)) {
+		boolean signalAlreadyReceived = this.triggeredSignals.contains(signal);
+		if (signalAlreadyReceived) {
 			if (logger.isTraceEnabled()) {
 				logger.trace("Got signal: " + signal + " again from input port: " + inputPort);
 			}
-			return true;
 		} else {
 			if (logger.isTraceEnabled()) {
 				logger.trace("Got signal: " + signal + " from input port: " + inputPort);
 			}
 			this.triggeredSignals.add(signal);
-			return false;
 		}
+		return signalAlreadyReceived;
 	}
 
 	@Override
diff --git a/src/main/java/teetime/framework/StageState.java b/src/main/java/teetime/framework/StageState.java
index 02be6f57b8db1d93df2556c24a5c0a4023fbb7a0..45388ce549750ed6a695f650b74da8ebbd8b1d6a 100644
--- a/src/main/java/teetime/framework/StageState.java
+++ b/src/main/java/teetime/framework/StageState.java
@@ -17,6 +17,7 @@ package teetime.framework;
 
 public enum StageState {
 
+	NOT_INITIALIZED,
 	INITIALIZED,
 	CREATED,
 	VALIDATING, VALIDATED,
diff --git a/src/main/java/teetime/stage/InstanceOfFilter.java b/src/main/java/teetime/stage/InstanceOfFilter.java
index 1e72dd7e36a2fd93692774e729d5f9d099828dfd..619413239746db490a4148f21384844d3583af16 100644
--- a/src/main/java/teetime/stage/InstanceOfFilter.java
+++ b/src/main/java/teetime/stage/InstanceOfFilter.java
@@ -58,7 +58,7 @@ public final class InstanceOfFilter<I, O extends I> extends AbstractConsumerStag
 	 *
 	 * @return the output port that is used when the element is a (sub)type of the internal type attribute
 	 *
-	 * @deprecated 1.1. Use {@link #getMatchedOutputPort()} instead.
+	 * @deprecated Since 1.1. Use {@link #getMatchedOutputPort()} instead.
 	 */
 	@Deprecated
 	public OutputPort<O> getOutputPort() {