Begin rework for MVVM