Refactored model