protected void addLevel2Tree( double cx, double cy, WorldUpdateBuilder ub ) {
		switch( rand.nextInt(4) ) {
		case( 0 ):
			// ring!
			double rad = 250+rand.nextDouble()*500;
			double cir = rad * 2 * Math.PI;
			int count = (int)(cir / 500)+1;
			double phase = rand.nextDouble();
			for( int i=0; i<count; ++i ) {
				double o = i*2*Math.PI/count + phase;
				addLevel2Cluster( cx+rad*Math.cos(o), cy+rad*Math.sin(o), ub );
			}
			break;
		case( 1 ):
			// star!
			addLevel2Cluster( cx, cy, ub );
			addLevel2Cluster( cx - 300, cy - 400, ub );
			addLevel2Cluster( cx + 300, cy + 400, ub );
			addLevel2Cluster( cx - 400, cy + 300, ub );
			addLevel2Cluster( cx + 400, cy - 300, ub );
			break;
		case( 2 ):
			// line!
			double ang = rand.nextDouble()*Math.PI*2;
			for( int i=rand.nextInt(20); i>=0; --i ) {
				cx += 450*Math.cos(ang);
				cy += 450*Math.sin(ang);
				addLevel2Cluster( cx, cy, ub );
				ang += rand.nextGaussian();
			}
			break;
		case( 3 ):
			// random!
			for( int i=rand.nextInt(7); i>=0; --i ) {
				addLevel2Cluster( cx + rand.nextDouble()*1024-512, cy + rand.nextDouble()*1024-512, ub );
			}
		}
	}