events and io