Events

Let this PR pending, I will push updates to this branch that can then be pulled to the master.