eval refactored