4th works but only without recursion. Refactoring.