added util/array_reduction