This sample demonstrates an approach to MVVM based on protocol oriented programming. This means that instead of having a whole view-model defined in one place, we instead break it up in protocols, each with its implementation of what would be a single exposed method of the view-model.