this is making assumptions about the order of the hierarchy traversal that aren't quite clear...