add recurse option