Refactoring HTTP negotiator