code: public static <A, B> BaseListCommand<A, B> and(Command<A, B> first, Command<A, B> second) {
          List<Command<A, B>> list = Lists.newArrayList();
          list.add(first);
          list.add(second);
          return new AndCommand<>(list);
      }
docs: Returns a task that executes both tasks sequentially, applying the same argument on both.
  The result of the execution is an ArrayList containing two elements (0 and 1).