Generalize to allow more than 2 candidates