code: public void addCommand(Command command) {
          if(command == null)
              throw new IllegalArgumentException();
  
          if(_frozen)
              throw new IllegalStateException();
  
          Command[] results = new Command[_commands.length + 1];
          System.arraycopy(_commands, 0, results, 0, _commands.length);
          results[_commands.length] = command;
          _commands = results;
      }
docs: Add a command to the chian.
  @param command the new command