     };      @Override     public Flight parseResponse(String response, String header) throws APIException {       return Flight.parseResponse(response, getContext(), this, header).head();     }      @Override     public Flight execute() throws APIException {       return execute(new HashMap<String, Object>());     }      @Override     public Flight execute(Map<String, Object> extraParams) throws APIException {       ResponseWrapper rw = executeInternal(extraParams);       lastResponse = parseResponse(rw.getBody(), rw.getHeader());       return lastResponse;     }      public ListenableFuture<Flight> executeAsync() throws APIException {       return executeAsync(new HashMap<String, Object>());     };      public ListenableFuture<Flight> executeAsync(Map<String, Object> extraParams) throws APIException {       return Futures.transform(         executeAsyncInternal(extraParams),         new Function<ResponseWrapper, Flight>() {            public Flight apply(ResponseWrapper result) {              try {                return APIRequest