add product CRUD methods and views, add tests