better upvoting algorithm