Smarter (?) body recursion