diff --git a/src/main/java/teetime/stage/basic/merger/Merger.java b/src/main/java/teetime/stage/basic/merger/Merger.java
index 4bf4ef573320f0e16238a3a173608e5d24453dfb..3a4672cacdb9e109a42335b62d40a20a5814691d 100644
--- a/src/main/java/teetime/stage/basic/merger/Merger.java
+++ b/src/main/java/teetime/stage/basic/merger/Merger.java
@@ -40,11 +40,10 @@ import teetime.framework.signal.ISignal;
 public final class Merger<T> extends AbstractStage {
 
 	private final OutputPort<T> outputPort = this.createOutputPort();
+	private final Map<Class<? extends ISignal>, Set<InputPort<?>>> signalMap = new HashMap<Class<? extends ISignal>, Set<InputPort<?>>>();
 
 	private IMergerStrategy strategy;
 
-	private final Map<Class<ISignal>, Set<InputPort<?>>> signalMap = new HashMap<Class<ISignal>, Set<InputPort<?>>>();
-
 	public Merger() {
 		this(new RoundRobinStrategy());
 	}
@@ -73,7 +72,6 @@ public final class Merger<T> extends AbstractStage {
 	 * @param inputPort
 	 *            The port which the signal was sent to
 	 */
-	@SuppressWarnings("unchecked")
 	@Override
 	public void onSignal(final ISignal signal, final InputPort<?> inputPort) {
 		if (logger.isTraceEnabled()) {
@@ -87,7 +85,7 @@ public final class Merger<T> extends AbstractStage {
 			inputPorts = signalMap.get(signalClass);
 		} else {
 			inputPorts = new HashSet<InputPort<?>>();
-			signalMap.put((Class<ISignal>) signalClass, inputPorts);
+			signalMap.put(signalClass, inputPorts);
 		}
 
 		if (!inputPorts.add(inputPort)) {
@@ -97,38 +95,8 @@ public final class Merger<T> extends AbstractStage {
 		if (signal.mayBeTriggered(inputPorts, getInputPorts())) {
 			super.onSignal(signal, inputPort);
 		}
-
-		// if (signalMap.containsKey(signalClass)) {
-		// Set<InputPort<?>> set = signalMap.get(signalClass);
-		// if (!set.add(inputPort)) {
-		// this.logger.warn("Received more than one signal - " + signal + " - from input port: " + inputPort);
-		// }
-		// if (signalMap.get(signalClass).size() == this.getInputPorts().length && signalClass == TerminatingSignal.class) {
-		// triggerAndPassOn(signal);
-		// // signalMap.remove(signalClass);
-		// }
-		// } else {
-		// Set<InputPort<?>> tempSet = new HashSet<InputPort<?>>();
-		// signalMap.put((Class<ISignal>) signalClass, tempSet);
-		// tempSet.add(inputPort);
-		// if (signalClass == InitializingSignal.class || signalClass == StartingSignal.class) {
-		// triggerAndPassOn(signal);
-		// }
-		// }
-
 	}
 
-	// private void triggerAndPassOn(final ISignal signal) {
-	// signal.trigger(this);
-	// sendSignalToOutputPorts(signal);
-	// }
-
-	// private void sendSignalToOutputPorts(final ISignal signal) {
-	// for (OutputPort<?> outputPort : getOutputPorts()) {
-	// outputPort.sendSignal(signal);
-	// }
-	// }
-
 	public IMergerStrategy getMergerStrategy() {
 		return this.strategy;
 	}