public static function getFactory($p_name, $p_file = null)
    {
        if (self::$factory === null) {
            self::$factory = array();
        }
        if (!array_key_exists($p_name, self::$factory)) {
             self::$factory[$p_name] = new self($p_file);
        }

        return self::$factory[$p_name];
    }