support hierarchy of regions.
rewrite with a layout protocol.