add await() API to give resumable functions API