       return executor.supplyAsync(source::flightsFrom)
                        .thenCombine(executor.completedFuture(dest.flightsTo()),
                                     Itinerary::sourceMatchingDest);
     } catch (NamingException x) {
         throw new CompletionException(x);
     }
 }
 </pre>

 with usage,

 <pre>
 findSingleLayoverFlights(RST, DEN).thenApply(Itinerary::sortByPrice);
 </pre>

 <p>
 Methods with the following return types can be annotated to be
 asynchronous methods:
 <ul>
 <li><a hr