update service layer to have stateful observers