max depth cap on recursion