code: private AbstractSimon newSimon(String name, Class<? extends AbstractSimon> simonClass) {
  		AbstractSimon simon = instantiateSimon(name, simonClass);
  		if (name != null) {
  			addToHierarchy(simon, name);
  			SimonConfiguration config = configuration.getConfig(name);
  			if (config.getState() != null) {
  				simon.setState(config.getState(), false);
  			}
  			allSimons.put(name, simon);
  		}
  		return simon;
  	}
docs: called from synchronized method