Finish the observer pattern