reduce methods