public ListenableFuture<SyncTask.Outcome> start(Config config) {
final ListeningExecutorService exec = MoreExecutors.listeningDecorator(Executors.newFixedThreadPool(
config.numConcurrent + 3));
ListenableFuture<SyncTask.Outcome> syncOutcomeFuture = exec.submit(new SyncTask(bus,
exec,
config));
// Shut down executor on completion
Futures.addCallback(syncOutcomeFuture, new FutureCallback<Outcome>() {