use singleton with service to not launch worker more than once