added observer pattern to manipulate ui elements from service object