Great article, thank you for that. Currently I’m also dive deeper into mvp on Android, as well as clean architecture in general. The topic is pretty cool and I see the benefits of keeping your code structured. But there is one think I don’t understand at the moment, why do we have to use so many interface for nearly every class? I like the idea that we have “guidelines” for how to implement a presenter or a model or something else, but to realize that a basic interface for example for presenters or views in general are enough, isn’t it? Especially the blog post of Fernando Cejas and the depending github project uses a lot of interfaces for nearly all of the classes. So I don’t get that point. Do you have any idea why we have to use them so frequently? Thank you for your help in advance.