using BaseWorker (thanks @hodgestar)