refactor gather_votes