dynamic based on product type