extending product to expressions