public static function build($name, array $configs = array())
    {
        if (isset(self::$instantiated[$name])) {
            return self::$instantiated[$name];
        }

        self::instantiateDefaultBroadcasters();
        if (!isset(self::$broadcasters[$name])) {
            throw new InvalidArgumentException(sprintf('Undefined broadcaster with name "%s".', $name));
        }

        self::$instantiated[$name] = self::instantiate(self::$broadcasters[$name], $configs);

        return self::$instantiated[$name];
    }