add presenter service to handle setting state