examples with recursion