updated MapReduce