add content negotiation