private FutureWrappedBootstrap<FutureBootstrap> broadcast() {
   final FutureWrappedBootstrap<FutureBootstrap> result =
       new FutureWrappedBootstrap<FutureBootstrap>();
   // limit after
   @SuppressWarnings("unchecked")
   final FutureLateJoin<FutureResponse> tmp =
       (FutureLateJoin<FutureResponse>) peer.ping().setBroadcast().setPort(portUDP).start();
   tmp.addListener(
       new BaseFutureAdapter<FutureLateJoin<FutureResponse>>() {
         @Override
         public void operationComplete(final FutureLateJoin<FutureResponse> future)
             throws Exception {
           if (future.isSuccess()) {
             FutureResponse futureResponse = future.getLastSuceessFuture();
             if (futureResponse == null) {
               result.setFailed("no futures found", future);
               return;
             }
             if (bootstrapTo != null && bootstrapTo.size() > 0) {
               logger.info(
                   "you added peers to bootstrapTo. However with broadcast we found our own peers.");
             }
             peerAddress = futureResponse.getResponse().getSender();
             bootstrapTo = new ArrayList<PeerAddress>(1);
             bootstrapTo.add(peerAddress);
             result.setBootstrapTo(bootstrapTo);
             result.waitFor(bootstrap());
           } else {
             result.setFailed("could not reach anyone with the broadcast", future);
           }
         }
       });
   return result;
 }
 private FutureWrappedBootstrap<FutureBootstrap> bootstrapPing(PeerAddress address) {
   final FutureWrappedBootstrap<FutureBootstrap> result =
       new FutureWrappedBootstrap<FutureBootstrap>();
   final FutureResponse tmp =
       (FutureResponse) peer.ping().setPeerAddress(address).setTcpPing().start();
   tmp.addListener(
       new BaseFutureAdapter<FutureResponse>() {
         @Override
         public void operationComplete(final FutureResponse future) throws Exception {
           if (future.isSuccess()) {
             peerAddress = future.getResponse().getSender();
             bootstrapTo = new ArrayList<PeerAddress>(1);
             bootstrapTo.add(peerAddress);
             result.setBootstrapTo(bootstrapTo);
             result.waitFor(bootstrap());
           } else {
             result.setFailed("could not reach anyone with bootstrap");
           }
         }
       });
   return result;
 }