refactor candidate list