code: void replaceChild(Simon simon, AbstractSimon newSimon) {
  		children.remove(simon);
  		if (newSimon != null) {
  			children.add(newSimon);
  			newSimon.setParent(this);
  		}
  	}
docs: Replaces one of the children for a new one (unknown to concrete). Used only internally.
  
  @param simon original Simon (unknown)
  @param newSimon new Simon