Ick - only up to depth 6.  Is there any specific rationale for chosing to stop at 6 ?
Naturally, that limit needs to be documented ...