Patch Set 5: I would prefer that you didn't submit this

(2 inline comments)

This looks a lot better.  I think I'm down to one API style nit I missed earlier, and I'm still trying to get rid of that Tree class..