MVVM pattern example