Recursive traversal, cleanup