add map reduce