Building a complete MVVM style application