Looking at that code and comparing it to the builder syntax I think it is easier to understand what's going on with the builders actually. I think any programmer will see that we're building a hierarchy of nodes. Maybe I could try to rewrite it, but keep information and techniques about both ways of doing it?