reduce, not reduceRight