Make the initial tree generation depth-first. This may improve
memory usage.
A little more work to make things GC able - I think this will actually be all that
we need.