recursive subdivision