addrecursive feature