Mitch finally helped me understand MVVM. The best part about his teaching is that he doesn't show you the "final" code right away. He initially may show you a sub-optimal way, but he slowly builds the code towards the optimal way, which makes you understand why things are implemented the way they are. That's the best way to do it, because knowing what NOT to do is just as important as knowing WHAT to do :)