protected void load() throws MaltChainedException {
		try {
			final BufferedReader in = new BufferedReader(getGuide().getConfiguration().getConfigurationDir().getInputStreamReaderFromConfigFile(getModelName()+".dsm"));
			final Pattern tabPattern = Pattern.compile("\t");
			while(true) {
				String line = in.readLine();
				if(line == null) break;
				String[] cols = tabPattern.split(line);
				if (cols.length != 2) { 
					throw new GuideException("");
				}
				int code = -1;
				int freq = 0;
				try {
					code = Integer.parseInt(cols[0]);
					freq = Integer.parseInt(cols[1]);
				} catch (NumberFormatException e) {
					throw new GuideException("Could not convert a string value into an integer value when loading the feature divide model settings (.fsm). ", e);
				}
				if (code == -1) { 
					masterModel = new AtomicModel(-1, masterFeatureVector, this);
					masterModel.setFrequency(freq);
				} else if (divideModels != null) {
					divideModels.put(code, new AtomicModel(code, divideFeatureVector, this));
					divideModels.get(code).setFrequency(freq);
				}
				setFrequency(getFrequency()+freq);
			}
			in.close();
		} catch (IOException e) {
			throw new GuideException("Could not read from the guide model settings file '"+getModelName()+".dsm"+"', when " +
					"loading the guide model settings. ", e);
		}	
	}