(I also think it was a mistake that I had the dialog call methods on the view to do filtering when those are really model methods. Those should probably just call the model directly as well. Basically, the original sin here is that the view sort of "owns" the model, but the dialog's install button and search box really need to listen to and talk to the model as well. Probably a better thing to do would have been to have the dialog create the model and pass it into the view, then also talk to the model directly.)