Refactor the product model
Add angular file upload