top-level evaluator