Fix return type of productElement
tidy up for 1.0