Do you want to take this as a constructor param and instantiate this particular cache in the companion object? This makes it easier to use this with custom caches later. You could hide it behind a cache trait as well to really stage us.