public function getListeners( $eventName = NULL )
    {
        if ( NULL !== $eventName )
        {
            if ( !isset( $this->_sorted[ $eventName ] ) )
            {
                $this->sortListeners( $eventName );
            }

            return $this->_sorted[ $eventName ];
        }

        foreach ( array_keys( $this->listeners ) as $eventName )
        {
            if ( !isset( $this->_sorted[ $eventName ] ) )
            {
                $this->sortListeners( $eventName );
            }
        }

        return array_filter( $this->_sorted );
    }