Feature/products model refactor