@Override
 public void disableAll() {
   for (Class<?> clazz : interfaces.getInterfaces()) {
     ((ICommand) interfaces.getImplementation(clazz)).enable(false);
   }
   interfaces.clear();
 }
 public String toString() {
   StringBuffer buffer = new StringBuffer();
   for (Class<?> clazz : interfaces.getInterfaces()) {
     if (buffer.length() > 0) {
       buffer.append(",");
     }
     buffer.append(clazz.getName());
   }
   return buffer.toString();
 }
 @Override
 public ICommand getCommand(Class<?> commandClazz) {
   return (ICommand) interfaces.getImplementation(commandClazz);
 }
 @Override
 public ICommand removeCommand(Class<?> commandClazz) {
   ICommand command = (ICommand) interfaces.remove(commandClazz);
   if (command != null) command.enable(false);
   return command;
 }
 @Override
 public void addCommand(Class<?> clazz, ICommand instance) {
   interfaces.add(clazz, instance);
   instance.enable(true);
 }