improved MapReduce