pn.reduce now has 0 being the default starting val