CSE 494: Advanced OOP with Java - Observer Design Pattern