Observer Pattern Added