Adds observer pattern