move listener aware functions from service to factory