add upvote/downvote methods and modify vote method to overwrite previous vote when called twice