move cache into the base class to enable caching schemes for all children