public function add($data)
  {
      if (is_array($data)) {
          $this->listeners = array_merge($this->listeners, $data);
      } elseif ($data instanceof \Symfony\Component\EventDispatcher\EventlistenerInterface) {
          if (!in_array(get_class($data), $this->loaded)) {
              $this->emitter->addListener($data);
              $this->loaded[] = get_class($data);
          }
      } else {
          if (is_string($data)) {
              $this->listeners[] = $data;
          }
      }
  }