Event-Based Programming: Taking Events to the Limit