type checks on events
dispatch more strict