DRYd up project controller and error handing for 404s