Applications are event driven and make regular calls to the System Manager for reports of events. The usual form of a reported event is a keystroke, but there are also events from the System Manager, such as suspension and termination messages. Whenever an application makes a request for the next event, it must be prepared to deal with all forms of responses.