First stab at ViewModel and 2-way data binding