added worker and the worker perform method