added BaseWorker