More front-end viewmodel and component structure changes. ViewModels now bind themselves to a DOM view