MVVM Solution