'port_remote': 8090,
     'background_color': '#ffffff',
     'queries_cutoff': '',
-    'whitelist_tags_prefilter': [],
-    'needed_tags_prefilter': [],
-    'whitelist_tags_display': [],
+    'tags_prefilter_whitelist': [],
+    'tags_prefilter_needed': [],
+    'tags_display_whitelist': [],
     'allow_file_edit': True
 }
 
     background_color: str
     allow_file_edit: bool
     queries_cutoff: DatetimeStr
-    needed_tags_prefilter: TagSet
-    whitelist_tags_prefilter: TagSet
-    whitelist_tags_display: TagSet
+    tags_prefilter_needed: TagSet
+    tags_prefilter_whitelist: TagSet
+    tags_display_whitelist: TagSet
 
     def __init__(self):
         def set_attrs_from_dict(d):
         set_attrs_from_dict({k[len(ENVIRON_PREFIX):].lower(): v
                              for k, v in environ.items()
                              if k.isupper() and k.startswith(ENVIRON_PREFIX)})
-        for attr_name in ('needed_tags_prefilter',
-                          'whitelist_tags_prefilter',
-                          'whitelist_tags_display'):
-            setattr(VideoFile, attr_name, getattr(self, attr_name))
+        for attr_key in [key for key in self.__class__.__annotations__.keys()
+                         if key.startswith('tags_')]:
+            setattr(VideoFile, attr_key, getattr(self, attr_key))
 
 
 class YoutubeQuery(DbData):
     digest: Hash
     tags: TagSet
     # class attributes
-    needed_tags_prefilter: TagSet
-    whitelist_tags_prefilter: TagSet
-    whitelist_tags_display: TagSet
+    tags_prefilter_needed: TagSet
+    tags_prefilter_whitelist: TagSet
+    tags_display_whitelist: TagSet
 
     def __init__(self,
                  digest: Optional[Hash],
             f for f in cls.get_all(conn)
             if (show_absent or f.present)
             and str(filter_path).lower() in str(f.rel_path).lower()
-            and (cls.needed_tags_prefilter.are_all_in(f.tags)
-                 or not cls.whitelist_tags_prefilter.all_also_in(f.tags).empty)
-            and needed_tags_seen.whitelisted(cls.whitelist_tags_display
+            and (cls.tags_prefilter_needed.are_all_in(f.tags)
+                 or not cls.tags_prefilter_whitelist.all_also_in(f.tags).empty)
+            and needed_tags_seen.whitelisted(cls.tags_display_whitelist
                                              ).are_all_in(f.tags)]
 
     @property
     def tags_showable(self) -> TagSet:
-        """Show .tags passing .whitelist_tags_display, if latter set."""
-        return self.tags.whitelisted(self.whitelist_tags_display)
+        """Show .tags passing .tags_display_whitelist, if latter set."""
+        return self.tags.whitelisted(self.tags_display_whitelist)
 
     def unused_tags(self, conn: DbConn) -> TagSet:
         """Return tags used among other VideoFiles, not in self."""
         tags = TagSet()
         for file in self.get_all(conn):
             tags.add(file.tags.all_not_in(self.tags).whitelisted(
-                self.whitelist_tags_display))
+                self.tags_display_whitelist))
         return tags
 
     @property