here's a patch that decouples all the classes from the compute service cache, and makes a nice threadsafe one.
I've fixed a few broken windows (ex. unused imports & fields, missing generic type params, etc) and included these in the same patch intentionally.
While it is a minor pain to glance at these small fixes while also looking at the core changes, I strongly believe it is for the better. We should make it easier to fix broken windows then to break them. Jailing window-fixing into separate jiras will surely demotivate those of us who like keep the project clean. Being flexible about allowing trivial fixes in patches will encourage us.