the product object approach looks good!