Why do we have to recurse into children?  Isn't it enough to make the parent node as hidden?  Seems like it would be so much faster.