Does this bound on client instance to one content-type? Do we need this to be that strict. I think a Map of Content-Type -> codec would make it more generic.