https://medium.com/@mkcode0323/understanding-launch-vs-runblocking-in-kotlin-for-android-development-a7446f9804c5