MVVM and Repository patterns