Using the map saves us a data structure and makes it trivial to switch directly from upvote to downvote. Externally, there are public methods to upvote and downvote.