this is basically what we want to do with mapreduce