introduce DirectoryItem hierarchy