added product.dispose