update worker logic