Improved MVVM implementation.