refactored evaluate-operand