move to shared_ptr for Worker [2]