Did my best to reimplement all the improvements made to CandidateFinder.cpp that were lost in the recent merge.