vote refactor