MVVM refactoring