expression evaluator refactored