This simplifies new event calling by reducing the diff to actually fire the event and check for cancelled state.