refactor cache so it is partitioned in to sections