There was also some discussion about whether we could somehow hang the cache off the play object instead of adding the new optional args everywhere. Left as an exercise for the reader, but the new plumbing for this is the "ickiest" part of this change IMO.