MVVM Without Reactive Programming