refacored prodcut model spec