Force proper usage of the event API

and add more assertions