refactor, move votes logic to Vote