added the recursive option