Lots more MVVM work done

Mainly just dialog box handling left to do and more unit tests