adding map-reduce