Cache might be too generic here. What if we add another cache?