added *_async() functions