Return types should be CompletableFuture within CompletableFuture by convention