slightly changed the typedef name for async functions