You should have a class for items that can be votes, so both Comments and Revisions inherit from it. This way you avoid duplicating the code necessary for voting; I know that Comments can't be downvoted, but it's not bad to have that possibility in the Model. If you for some reason don't like this idea, the least you could do is create functions to calculate reputation and wilson score.