diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py
index e0d1ba5c80421fe6b4347aafc0cd3f9a4b89fb61..3c67115f5fa3e99a60b0cf9c6f07a5dbb7ef6715 100644
--- a/src/taggingbackends/explorer.py
+++ b/src/taggingbackends/explorer.py
@@ -4,6 +4,7 @@ import pathlib
 import importlib
 import logging
 import subprocess
+from collections import defaultdict
 
 
 class BackendExplorer:
@@ -293,7 +294,7 @@ run `poetry add {pkg}` from directory: \n
     def list_model_files(self):
         return self.list_files(self.model_dir())
 
-    def list_files(self, data_dir, relative=False):
+    def list_files(self, data_dir, relative=False, group_by_directories=False):
         files = []
         dirs = [data_dir]
         while dirs:
@@ -305,6 +306,11 @@ run `poetry add {pkg}` from directory: \n
                     if relative:
                         child = child.relative_to(data_dir)
                     files.append(child)
+        if group_by_directories:
+            files_ = defaultdict(list)
+            for file in files:
+                files_[file.parent.name].append(file)
+            files = dict(files_)
         return files