Designing MVVM pattern