Refactored eval to return option