beginning of async functions