Added MVC based upon Observer Pattern