Cleaned up Recursive.cs implementation