Updated to give language-level support for events.