Make AbstractEvent require EmitterInterface rather than Emitter