migrate to Coroutines architecture for better and cleaner support of asy...

migrate to Coroutines architecture for better and cleaner support of asynchronous operations