see, definitely confusing  :)  you end up taking the biggest value for `length`, which increases as you walk _up_ the stack, _out_ from the innermost function