anchor.diff:    }
   
     _HTTPMethodParameterValues parseRequest() {
  -    var orderedParameters = _parseOrderedParameters();
  -
  +    var parameterValues = new _HTTPMethodParameterValues()
  +      ..methodSymbolForRequest = _methodSymbol;
  +
  +    _parseOrderedParameters(parameterValues);
       _parseOptionalParameters();
  -    var controllerParameters = _symbolicateControllerParameterValues();
  -    var optionalParameters = _symbolicateOptionalParameterValues();
  -
  -    return new _HTTPMethodParameterValues(
  -        _methodSymbol,
  -        controllerParameters,
  -        orderedParameters,
  -        optionalParameters,
  -        _missingQueries,
  -        _missingHeaders
  -    );
  -  }
  -
  -  List<dynamic> _parseOrderedParameters() {
  +    _symbolicateControllerParameterValues(parameterValues);
  +    _symbolicateOptionalParameterValues(parameterValues);
  +
  +    return parameterValues;
  +  }
  +
  +  void _parseOrderedParameters(_HTTPMethodParameterValues values) {
       var key = _generateHandlerMethodKey(_request.innerRequest.method, _request.path.orderedVariableNames);
       var method = _methodCache[_controller.runtimeType][key];
  -    return method
  +    values.orderedParametersForRequest = method
           .orderedPathParameters
           .map((param) => _convertParameterWithMirror(_request.path.variables[param.name], param.typeMirror))
           .toList();
  
positive.code:   List<dynamic> orderedParametersForRequest = [];
    Map<Symbol, dynamic> optionalParametersForRequest = {};
  
    bool isMissingRequiredParameters;
    String missingParametersString;
  
    _HTTPMethodParameterValues(this.methodSymbolForRequest,
                               this.controllerParametersForRequest,
                               this.orderedParametersForRequest,
                               this.optionalParametersForRequest,
                               List<String> missingQueries,
                               List<String> missingHeaders) {
      isMissingRequiredParameters = missingQueries.isNotEmpty || missingHeaders.isNotEmpty;
      missingParametersString = buildMissingParameterString(missingQueries, missingHeaders);
    }
  
    String buildMissingParameterString(List<String> missingQueries, List<String> missingHeaders) {
      if (!isMissingRequiredParameters) {
        return null;
      }
  
      StringBuffer missings = new StringBuffer();
      if (missingQueries.isNotEmpty) {
        var missingQueriesString = missingQueries
            .map((p) => "'${p}'")
            .join(", ");
        missings.write("Missing query value(s): ${missingQueriesString}.");
      }
      if (missingQueries.isNotEmpty && missingHeaders.isNotEmpty) {
        missings.write(" ");
      }
      if (missingHeaders.isNotEmpty) {
        var missingHeadersString = missingHeaders
            .map((p) => "'${p}'")
            .join(", ");
        missings.write("Missing header(s): ${missingHeadersString}.");
  
negative.code: 
      return missings.toString();
    }
  
    List<String> _missingQueries = [];
    List<String> _missingHeaders = [];
  }
  
  class _HTTPMethodParameterTemplate {
  