diff --git a/src/taggingbackends/explorer.py b/src/taggingbackends/explorer.py
index 8f57e53207d2f9e953f52f0e0b69eea5396153ed..4680ab233b0f40d822098cc615c887f2c90de4fc 100644
--- a/src/taggingbackends/explorer.py
+++ b/src/taggingbackends/explorer.py
@@ -372,14 +372,14 @@ run `poetry add {pkg}` from directory: \n
                 source.unlink()
             check_permissions(destination)
 
-    def list_input_files(self, query=None):
-        return self.list_files(self.raw_data_dir(), query)
+    def list_input_files(self, **kwargs):
+        return self.list_files(self.raw_data_dir(), **kwargs)
 
-    def list_interim_files(self, query=None):
-        return self.list_files(self.interim_data_dir(), query)
+    def list_interim_files(self, **kwargs):
+        return self.list_files(self.interim_data_dir(), **kwargs)
 
-    def list_output_files(self, query=None):
-        return self.list_files(self.processed_data_dir(), query)
+    def list_output_files(self, **kwargs):
+        return self.list_files(self.processed_data_dir(), **kwargs)
 
     def list_model_files(self, query=None):
         return self.list_files(self.model_dir(), query)
@@ -399,11 +399,17 @@ run `poetry add {pkg}` from directory: \n
         if group_by_directories:
             files_ = defaultdict(list)
             for file in files:
-                files_[file.parent.name].append(file)
+                files_[str(file.parent)].append(file)
             files = dict(files_)
         return files
 
     def prepare_labels(self, input_files):
+        if isinstance(input_files, dict):
+            input_files_and_labels = dict()
+            for parent in input_files.keys():
+                input_files_and_labels[parent] = self.prepare_labels(input_files[parent])
+            return input_files_and_labels
+        #
         from .data.labels import Labels, labels_file_extension
         labels = Labels()
         # load and remove any *metadata* file.