Refactored URLs to be more DRY, changed reverse lookups to use named url patterns.