I use this MVP implementation:
https://github.com/antoniolg/androidmvp. Please take a look, suddenly you will like it. Antonio Leiva wrote many articles and books on Android and Kotlin. But if you want I can write in this style: https://codelabs.developers.google.com/codelabs/android-testing/index.html?index=../../babbq-2015&viewga=+UA-68632703-1#3 I download the data in a fragment, because I think it is correct. The application loads only the information that the user sees.