This is probably not thread safe if the `ResultsCachingClient` is shared by multiple threads.
It would be safer, and also easier to understand if you initialize `baseRunner` as part of the constructor and declare it final.