An easy example of event generator
An example of notifier
An example of observer