MVVM added; initial working code