I did some stuff with singletons in the undo/redo branch. Maybe making WorkspaceViewModel a singleton in a similar way would work (we only ever have/need one instance anyway). Ideally, there would be no public way of accessing the WorkspaceViewModel, but I think this solution would be cleaner.