+ implemented content negotiation