public Environment<K,V> createChild( String name ) {
	
	//System.out.println( "Creating new child: "+name );

	// First: locate the container
	List<Environment<K,V>> tmpList = this.children.get( name );
	
	// Create new container if none exists
	if( tmpList == null ) {

	    tmpList = new ArrayList<Environment<K,V>>( 1 );
	    this.children.put( name, tmpList );

	} else if( !allowsMultipleChildNames() && tmpList.size() == 1 ) {

	    // Child already exists and NO multiple names allowed
	    return tmpList.get(0);

	}
	

	// Child count was not 1 so far
	// --> create new child
	Environment<K,V> child = new DefaultEnvironment<K,V>( this.mapFactory,
							      this.keyComparator,
							      this,    // parentEnvironment
							      this.allowsMultipleChildNames
							      );
	
	// Add to internal list
	tmpList.add( child );
	this.childCount++;

	return child;
    }