Why is this so complicated? Make instance `mutable` and re-assign it when a new solution is opened. We have a language service per solution any way.