Adding observer/observable pattern