function addQueue($channel, $queue, $weight = 1)
    {
        $orig    = $channel;
        $channel = $this->_normalizeQueueName($channel);


        if (! $queue instanceof iQueueDriver)
            throw new \Exception(sprintf(
                'Queue must be instance of iQueueDriver; given: (%s).'
                , \Poirot\Std\flatten($queue)
            ));

        if ( isset($this->channels_queue[$channel]) )
            throw new \RuntimeException(sprintf(
                'Channel (%s) is currently filled with (%s) and is not empty.'
                , $orig , get_class( $this->channels_queue[$channel] )
            ));


        $this->channels_queue[$channel]  = $queue;
        $this->channels_weight[$channel] = $weight;
        return $this;
    }