Is this what is saving all the RAM? i.e. instead of having the type tree as part of the object, you just generate it on the fly when needed. and then discard when done?  If so, it would be nice to add a note to this method to say this. (I suppose I could do this)