Refactored Evaluator. Determine value immediately instead of just booleans