Design Pattern Observer with delegates and events added.