tolerate block recursions up to 16 levels deep