Refactor evaluator to use more generic strategy