drafted recursion logic for what's open