added reduce