added worker logic