void updateSizes( direction d )
	{
		edge f;
		switch( d )
	    {
	    	case UP:
	    		f = head.leftEdge;
	    		if ( null != f )
	    			f.updateSizes( direction.UP );
	    		f = head.rightEdge;
	    		if ( null != f )
	    			f.updateSizes(direction.UP);
	    		topsize++;
	    		break;
	    	case DOWN:
	    		f = siblingEdge();
	    		if (null != f)
	    			f.updateSizes(direction.UP);
	    		f = tail.parentEdge;
	    		if ( null != f )
	    			f.updateSizes( direction.DOWN );
	    		bottomsize++;
	    		break;
	    }
	}