Following Apple’s advice and sticking with Model-View-Controller (MVC) design pattern seemed like a good idea at first, but as the app continued to grow, logic that drove some parts of it started to became complex to the point where making changes was accompanied with the feeling of unease and fixing issues in one part of the code with the fear of causing new bugs in some other parts. It would not be fair to blame only MVC for that – of course that some problems are caused by bad programming, lack of experience and the pressure of hard deadlines – but MVC is not well-wisher either. Thinking only in the terms of model, view and controller, one can miss some useful possibilities of how responsibilities can be further separated and dependency graph simplified. In following paragraphs I’ll present a situation where MVC can be improved by expanding it to MVVM