improve hierarchical extension