added explanation for map reduce