initial Reduce implementation - first two methods.
null safe reduce methods added