function loadFile($file, $optional=false, $varname=false, $recursive=false)
	{
		if (!is_file($file))
		{
			if ($optional)
				return $this;
			else
				throw new Exception("Failed to read config file '$file'");
		}

		$newConfig = @include($file);

		if(!is_array($newConfig) && $varname)
			$newConfig = $$varname;

		if(!is_array($newConfig) && !$optional)
			throw new Exception("Config file '$file' doesn't contain a config");
		else if(is_array($newConfig))
		{
			if ($recursive)
				$this->_data = array_merge_recursive($this->_data, $newConfig);
			else
				$this->_data = array_merge($this->_data, $newConfig);
		}

		return $this;
	}