calls recurse with opts and path array