public ConfigManager(FileInputStream configFileInputStream) throws IOException {
		load(configFileInputStream);
		// we avoid some confusion by getting rid of trailing whitespace on values.
		// there doesn't seem to be a way to both delete the old key and insert the new one while iterating!
		ArrayList<String> badKeys = new ArrayList<String>(); 
		Iterator it = entrySet().iterator();
		while ( it.hasNext() ) {
			Map.Entry entry = (Map.Entry)it.next();
			String key = (String)entry.getKey();
			String trimmedkey = key.trim();
			if ( !key.equals(trimmedkey)) {
				badKeys.add(key);
				continue;
			}
			String value = getProperty(key);
			String trimmed = value.trim();
			if ( !value.equals(trimmed) ) {
				badKeys.add(key);
			}
		}
		for ( String key : badKeys ) {
			String value = getProperty(key);
			remove(key);
			
			String trimmedKey = key.trim();
			String trimmedValue = value.trim();
			setProperty(trimmedKey, trimmedValue);
		}
	}