add product validation
add tests to product