changed virtual callback function to onSignal(SignalType&)