Map reduce

future.get(); is throwing exceptions, so we catch and rethrow