Removed unnecessary coroutine holder
and added co_async(not fully tested)