run the worker