That makes sense, but I'd still like to switch to straight inheritance - it's simpler to follow. CacheableOffset just sets `_cacheable` to True, whereas this adds to the external API.