added initial to iterator_reduce