recursive hExpand