Recursive code.