minor de-recursion