use mapReduce