evaluator refactoring