public static function has($name, $range = null)
    {
        static::_init();
        
        $range = $range ?: self::$range;
        
        $exists = isset(self::$data[$range][$name]) ? true : false;
        
        if (!$exists) {
            $names = explode('.', $name, 3);
            $count = count($names);
            if ($count >= 1) {
                $exists = array_key_exists($names[0], array_keys(self::$data[$range]));
                
                if ($count >= 2 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]]) && array_key_exists($names[1], array_keys(self::$data[$range][$names[0]]));
                }
                
                if ($count >= 3 && $exists) {
                    $exists = isset(self::$data[$range][$names[0]][$names[1]]) && array_key_exists($names[2], array_keys(self::$data[$range][$names[0]][$names[1]]));
                }
            }
        }
        
        return $exists;
    }