working upvote system with unvote feature