Our current "ViewModels" do nothing. We should properly structure all our views to require the ViewModel to be the only interface back to the model. This will make our platform much more portable in the future, and open the way for the WPF-based interface we want to build. By making our ViewModels complete and well structured, our WPF-based interface can just use the interface exposed by these ViewModels and communicate with the emulation cores through them. If we properly design an exported programmatic interface from the unmanaged device DLL's, we could directly hook into these interfaces and program against them from the .NET world, using C++/CLI as an interface layer.