I made an IModelTagable interface and corresponding IModelTagable class for the model, so that it can be kept seperate from tagable things in the view. I'm not the best tester, so this may introduce a few bugs.