asynchronous functions helper