The current event handlers have differing APIs which might be surprising, we should unify them under a single API