change map to map_async