Moved product/list filtering logic to model