improved content-negotiation