A framework for sending of and listening to events.