public WorldDescriptor load() {

		try {
			if (istream == null) {
				istream = new FileInputStream(f);
			}
			JAXBContext context = JAXBContext
					.newInstance(WorldDescriptor.class);
			Unmarshaller umarsh = context.createUnmarshaller();
			WorldDescriptor ret = (WorldDescriptor) umarsh.unmarshal(istream);
			logger.info("World descriptor file loaded: " + f);
			return ret;
		} catch (JAXBException e) {
			logger.error("Could not load world description file " + f);
			logger.error("Error message is: " + e);
			return null;
		} catch (FileNotFoundException e) {
			logger.error("Could not load world description file " + f
					+ ", file not found.");
			return null;
		}
	}