Pushing out wiring logic to Event subclasses