initial commit of observer pattern example