changed main to create rects with a given size, instead of random size
abstracted branch::smallest_expansion_child()