refactor EvalWorker
refactor again