Recursive part - in progress.