Only cast events to other events when we know it's them
Otherwise we're casting an event to class it's not and that's undefined behaviour