added recursive tree reimpl (in crap/)