voting refactored partial + model
Merge branch 'vote-refactor'