code: @SuppressWarnings("unchecked")
  	private void addToRootMap(String propertyPath, Object propertyValue)
  			throws PropertyException {
  		// split propertyPath
  		String[] propertyKeyArray = propertyPath.split("\\.");
  
  		// load configMap from disk
  		Map<String, Object> configMap = load();
  
  		// if simple token add too root map
  		if (propertyKeyArray.length == 1) {
  			configMap.put(propertyPath, propertyValue);
  		}
  
  		// add to root map
  		Map<String, Object> deeperNestedMap = configMap;
  		Object foundedValue = null;
  
  		// search the subMap with the key[i] without the last key
  		for (int i = 0; i < propertyKeyArray.length - 1; i++) {
  			foundedValue = deeperNestedMap.get(propertyKeyArray[i]);
  			if (foundedValue instanceof Map) {
  				// go deeper if something was found
  				deeperNestedMap = (Map<String, Object>) foundedValue;
  			} else {
  				// if foundedValue == null or not a Map
  				// then build from the i position new nested map(s)
  				String[] subArray = getCopyFrom(i + 1, propertyKeyArray);
  				Map<String, Object> newNestedMap = buildNewNestedMap(subArray,
  						propertyValue);
  
  				// add the newNestedMap map to the deeperNestedMap
  				deeperNestedMap.put(propertyKeyArray[i], newNestedMap);
  				break;
  			}
  
  			if (i == propertyKeyArray.length - 2) {
  				deeperNestedMap.put(
  						propertyKeyArray[propertyKeyArray.length - 1],
  						propertyValue);
  			}
  		}
  
  		// save all
  		save(configMap);
  	}
docs: Adds a given value object to the properties {@link Map} corresponding to
  the configuration file, creates deeper nested maps if necessary.
  
  @param propertyPath
  a property path where the value will be stored at
  @param propertyValue
  the value to be added to the root map
  @throws PropertyException
  If the propertyKey-Path is not a property key or is a not
  part of a property path