Refactored products model