@Override
    protected IStatus run(IProgressMonitor monitor) {
      // subs
      ArrayList<Sub> allSubs = new ArrayList<Sub>();

      for (Root root : roots) {
        String[] subIds = Client.getSubsArray(root.id());

        Sub[] subs = new Sub[subIds.length];
        for (int i = 0; i < subIds.length; i++) {
          Sub sub = new Sub(subIds[i], FETCHING_LEAVES);
          subs[i] = sub;
          allSubs.add(sub);
        }

        root.subs(subs);
      }

      new FetchJob3(allSubs).schedule();

      refresh();

      return Status.OK_STATUS;
    }