invoke hierarchy downward