Ongoing viewModel refactoring.

Not all widget features work yet and there's still a lot of work to be done.