refactor file-explorer