Recursive cleaning