anchor.diff:      this._awsClient.post(uri, payload).then((HttpClientResponse resp) {
         _readResponseAsString(resp).then((responseText) {
           if (resp.reasonPhrase.toUpperCase() != 'OK') {
  -          final err = new ErrorResponse.fromXml(responseText);
  -          _logger.warning(err.message);
  -          completer.completeError(err);
  +          _handleError(responseText, completer);
           } else {
             _logger.fine(responseText);
             final results = new DeleteResults.fromXml(responseText);
  
positive.code:     final payload = new RequestPayload.fromBytes(bytes, contentType);
      final uri = this._getUri(path: objectKey);
      this._awsClient.put(uri, payload).then((HttpClientResponse resp) {
        if (resp.reasonPhrase.toUpperCase() != 'OK') {
          completer.completeError(resp);
          //TODO: deserialize error into model some model
        } else {
          completer.complete();
        }
      });
      return completer.future;
    }
  
negative.code:     this._awsClient.get(uri).then((HttpClientResponse resp) {
        _readResponseAsString(resp).then((String responseText) {
          if (resp.reasonPhrase.toUpperCase() != 'OK') {
            _handleError(responseText, completer);
          } else {
            final results = new ListBucketResult.fromXml(responseText);
            completer.complete(results);
  