new tool for extract recursively