introduced ProductInterface