added content type negotiation