We don't *need* all the caches, but this is a clean way to keep track of the candidates and their info.