use service to mediate scope events