public Point move( Direction d ){
		switch( d ){
			case down: if( _down == null ){ _down = create( _x, _y+1 ); } return _down;
			case left: if( _left == null ){ _left = create( _x+1, _y ); } return _left;
			case right: if( _right == null ){ _right = create( _x-1, _y ); } return _right;
			case up: if( _up == null ){ _up = create( _x, _y-1 ); } return _up;
		}
		throw new IllegalArgumentException( d.toString() );
	}