added AsyncMap, AsyncCollection and their wrappers