In an Android project, I am using dagger 2 for dependency injection, applying mvp design pattern, and I am writing interface for almost every class. Although it does achieved the separation of concerns, each individual logic is not coupled with others. But for just making a simple REST call, it involved 20 plus java class files which makes the codebase to become very complex, I start to think is it normal to have 20 plus java classes for just making a simple REST call? Should I be really doing the MVP pattern and writing interfaces for every classes, or I am just doing it wrong?