Improve for asynchronous