Traverse implementation.
Yield return & Playing with Enumerable