recursion cleanup
recursion cont'd