Async Map/Reduce + tests