@Override
 public Iterable<? extends Node> execute(
     ListeningExecutorService executor,
     String environmentName,
     Predicate<String> nodeNameSelector) {
   return execute(
       executor,
       environmentName,
       filter(api.listNodesInEnvironment(environmentName), nodeNameSelector));
 }
 @Override
 public Iterable<? extends Client> execute(
     ListeningExecutorService executor, Predicate<String> clientNameSelector) {
   return execute(executor, filter(api.listClients(), clientNameSelector));
 }
 @Override
 public Iterable<? extends Node> execute(
     ListeningExecutorService executor, String environmentName) {
   return execute(executor, environmentName, api.listNodesInEnvironment(environmentName));
 }
 @Override
 public Iterable<? extends Client> execute(ListeningExecutorService executor) {
   return execute(executor, api.listClients());
 }