* Refactor content negotiation code into a service This is a refactor in anticipation of using this logic in some other places