First Pass recursive tree traversal, somewhat shimmed, TODO: move some p...

...ublics back to private