refactored evaluation