A simple implementation of the Observer design pattern for event handling and listening.