The Event module provide a central facility to watch for various 
types of events and invoke a callback when these events occur. The 
idea is to delay the handling of events so that they may be 
dispatched in priority order when it is safe for callbacks to 
execute.