Replace Signal with SignalDispatcher and SignalListener