got rid of the autorecurse flag
Considerably cleaned up `walk_children` and `recurse_real`