added product validation and tests.