add recursive option