add readDirRecursive & loadDirRecursive