Refactored backend to include downvoting