replace checkedFuture with ListenableFuture