updating product fn