Add product model, tests for product
Merge branch 'modeling-product'