New observer/observable pattern implemented