code • Many Android components viz Activity, Fragment, Broadcast Receiver, Service, AsyncTask etc. Writing your own domain components on top of these, code starts to look like a ‘spaghetti’ • It’s extremely difficult to maintain a good software design, even before scale. • Code contains dependencies concealed inside big classes, no way to test and debugging takes more time • Gradually, the code becomes less D.R.Y, more open for modification, gets loaded with generic interfaces which you dare to modify • It’s like playing a game of Go and slowly exhausting all your options