Hmm, looks like the original uses ````if child```` and not ````if child.exists?```` 

Using ````if child.exists?```` breaks tests (infinite recursion).