refactor evaluator api