add hierarchical context runner