added recursive operations to LINQ extensions