public static function load( $data ) {
		$http = HTTP::getDefaultInstance();

		if( !function_exists( 'simplexml_load_string' ) ) {
			throw new DependencyError( "SimpleXML", "http://us.php.net/manual/en/book.simplexml.php" );
		}

		libxml_use_internal_errors( true );

		if( in_string( "<?xml", $data ) ) {
			$xmlout = $data;
		} else {
			$xmlout = $http->get( $data );
		}

		Hooks::runHook( 'PreSimpleXMLLoad', array( &$xmlout ) );

		$xml = simplexml_load_string( $xmlout );

		Hooks::runHook( 'PostSimpleXMLLoad', array( &$xml ) );

		if( !$xml ) {
			foreach( libxml_get_errors() as $error ){
				throw new XMLError( $error );
			}
		}

		$outArr = array();

		$namespaces = $xml->getNamespaces( true );
		$namespaces['default'] = '';

		self::recurse( $xml, $outArr, $namespaces );

		libxml_clear_errors();

		return $outArr;
	}