add get_candidate, next_elem