Observer Pattern added