My first attempt at implementing MVVM pattern