I would make the current EventHandler a component, therefore allowing different event handlers to coexist, for different purposes.
I would then create a global instance inside Core - I think this will be possible, while avoiding the infinite loop that Bart mentioned.