Currently, both the CollectorPolicy and CollectedHeap interfaces require implementors to provide an AdaptiveSizePolicy via their size_policy() methods. However: 1. Not all GCs need/use an adaptive size policy (e.g. G1 doesn't), 2. it's not called/used from outside the GC and thus doesn't really belong into the runtime <-> GC interface. The size policy related methods should be moved down to the subclasses that actually use them.