Using MVVM pattern