factored out blockReduce