don't cache more than needed + remove alreadyCached variable + introduce Selector.getCacheType()