Repository: skit-ai/dialogy (language: python)

Issue:
A plugin for capturing entities within a list.
**Is your feature request related to a problem? Please describe.**
There are cases where entities that occur in a speech transcription are to be looked up within a list. These currently don't have a formal plugin support and requires custom efforts.

**Describe the solution you'd like**
A solution may involve parsing each transcript via regex patterns/spacy etc. Each entity thus can have some form of confidence depending on its occurrence frequency.

**Describe alternatives you've considered**
Implementing regex patterns or using spacy.


Discussion / hints:

Fix patch:
diff --git a/.travis.yml b/.travis.yml
index f84b29f7..f64232b3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -2,7 +2,9 @@ language: python
 os:
   - linux
 python:
+  - "3.7"
   - "3.8"
+  - "3.9"
 install:
   - pip install poetry coveralls
   - poetry install
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1e8506e5..06a976ab 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+# 0.5.6
+
+- [x] feat: spacy, pattern entity parsing from list support.
+- [x] refactor: Plugin class to prevent repeated code in subclasses.
+- [x] refactor: @debug -> @dbg to prevent name collisions.
+
 # 0.5.5
 
 - [x] feat: `dialogy create <project-name>`, we can drop the template name!
diff --git a/Makefile b/Makefile
index 89a899c0..04360b6d 100644
--- a/Makefile
+++ b/Makefile
@@ -7,8 +7,6 @@ lint:
 	@isort tests
 	@black dialogy
 	@black tests
-	@echo -e "remove unused imports"
-	@pycln dialogy
 	@echo -e "Running type checker"
 	@mypy dialogy
 
diff --git a/dialogy/constants/__init__.py b/dialogy/constants/__init__.py
index 392d95f6..ecf200fa 100644
--- a/dialogy/constants/__init__.py
+++ b/dialogy/constants/__init__.py
@@ -77,8 +77,14 @@ class EntityKeys:
 TIME = "time"
 DATETIME = "datetime"
 
+
 # This section covers signals tuple indices
 class SIGNAL:
     NAME = 0
     STRENGTH = 1
     REPRESENTATION = 2
+
+
+KEYWORD = "keyword"
+REGEX = "regex"
+SPACY = "spacy"
diff --git a/dialogy/plugin/plugin.py b/dialogy/plugin/plugin.py
index 7a210b93..48af7432 100644
--- a/dialogy/plugin/plugin.py
+++ b/dialogy/plugin/plugin.py
@@ -16,10 +16,10 @@
 - RuleSlotFilerPlugin
 - VotePlugin
 """
-from typing import Optional
+from typing import Any, Optional
 
 from dialogy.types.plugin import PluginFn
-from dialogy.utils.logger import change_log_level
+from dialogy.workflow import Workflow
 
 
 class Plugin:
@@ -85,6 +85,20 @@ def __init__(
         self.mutate = mutate
         self.debug = debug
 
+    def utility(self, *args: Any) -> Any:
+        ...
+
+    def plugin(self, workflow: Workflow) -> None:
+        if self.access:
+            args = self.access(workflow)
+            value = self.utility(*args)
+            if value is not None and self.mutate:
+                self.mutate(workflow, value)
+        else:
+            raise TypeError(
+                "Expected access to be functions" f" but {type(self.access)} was found."
+            )
+
     def __call__(self) -> PluginFn:
         """
         Build a plugin.
@@ -96,4 +110,4 @@ def __call__(self) -> PluginFn:
         A plugin can be designed to do anything, while the `workflow` will expect all plugins
         to have a `__call__()` method.
         """
-        ...
+        return self.plugin
diff --git a/dialogy/postprocess/text/slot_filler/rule_slot_filler.py b/dialogy/postprocess/text/slot_filler/rule_slot_filler.py
index 4d012e18..26072949 100644
--- a/dialogy/postprocess/text/slot_filler/rule_slot_filler.py
+++ b/dialogy/postprocess/text/slot_filler/rule_slot_filler.py
@@ -3,15 +3,14 @@
 
 Module provides access to a rule-based :ref:`slot filler<slot_filler>`.
 """
-from typing import List, Optional, Tuple
+from typing import Any, List, Optional
 
 from dialogy.plugin import Plugin
 from dialogy.types.entity import BaseEntity
 from dialogy.types.intent import Intent
 from dialogy.types.plugin import PluginFn
 from dialogy.types.slots import Rule
-from dialogy.utils.logger import debug, log
-from dialogy.workflow import Workflow
+from dialogy.utils.logger import dbg, log
 
 
 class RuleBasedSlotFillerPlugin(Plugin):
@@ -136,49 +135,15 @@ def __init__(
         # same entity type within a slot.
         self.fill_multiple = fill_multiple
 
-    @debug(log)
-    def plugin(self, workflow: Workflow) -> None:
-        """
-        Update an intent slot with compatible entity.
+    def fill(self, intent: Intent, entities: List[BaseEntity]) -> None:
+        intent.apply(self.rules)
 
-        - :code:`access(workflow)` should return a Tuple. :code:`Tuple[Intent,BaseEntity]`.
-        - Only 1 entity fills a slot type. To fill more, set :code:`fill_multiple=True`
+        for entity in entities:
+            intent.fill_slot(entity, fill_multiple=self.fill_multiple)
 
-        :param workflow:
-        :type workflow: Workflow
-        :return: None
-        :rtype: None
-        :raises TypeError: if access isn't a Callable.
-        """
-        if self.access is not None:
-
-            try:
-                intent_and_entities: Tuple[Intent, List[BaseEntity]] = self.access(
-                    workflow
-                )
-                intent, entities = intent_and_entities
-                log.debug("intent: %s, entities: %s", intent, entities)
-                intent.apply(self.rules)
-                log.debug("intent after rule application: %s", intent)
-
-                for entity in entities:
-                    intent.fill_slot(entity, fill_multiple=self.fill_multiple)
-
-                intent.cleanup()
-                log.debug("intent after slot-filling: %s", intent)
-            except TypeError as type_error:
-                raise TypeError(
-                    f"`access` passed to {self.__class__.__name__}"
-                    f" is not a Callable. Received {type(self.access)} instead."
-                ) from type_error
-        else:
-            raise TypeError(
-                f"`access` passed to {self.__class__.__name__}"
-                f" is not a Callable. Received {type(self.access)} instead."
-            )
-
-    def __call__(self) -> PluginFn:
-        """
-        syntactic sugar
-        """
-        return self.plugin
+        intent.cleanup()
+        log.debug("intent after slot-filling: %s", intent)
+
+    @dbg(log)
+    def utility(self, *args: Any) -> Any:
+        return self.fill(*args) # pylint: disable=no-value-for-parameter
diff --git a/dialogy/postprocess/text/voting/intent_voting.py b/dialogy/postprocess/text/voting/intent_voting.py
index 4877cbbe..98c223e4 100644
--- a/dialogy/postprocess/text/voting/intent_voting.py
+++ b/dialogy/postprocess/text/voting/intent_voting.py
@@ -12,8 +12,7 @@
 from dialogy.types import Signal
 from dialogy.types.intent import Intent
 from dialogy.types.plugin import PluginFn
-from dialogy.utils.logger import change_log_level, debug, log
-from dialogy.workflow import Workflow
+from dialogy.utils.logger import dbg, log
 
 
 def adjust_signal_strength(
@@ -189,7 +188,7 @@ def __init__(
         self.fallback_intent: str = fallback_intent
         self.aggregate_fn: Any = aggregate_fn
 
-    @debug(log)
+    @dbg(log)
     def vote_signal(self, intents: List[Intent], trials: int) -> Intent:
         """
         Reduce a list of intents.
@@ -247,25 +246,5 @@ def vote_signal(self, intents: List[Intent], trials: int) -> Intent:
             )
         return Intent(name=self.fallback_intent, score=1)
 
-    def plugin(self, workflow: Workflow) -> None:
-        """
-        Plugin to ease workflow io.
-        """
-        access = self.access
-        mutate = self.mutate
-
-        if access and mutate:
-            intents, trials = access(workflow)
-            intent = self.vote_signal(intents, trials)
-            mutate(workflow, intent)
-        else:
-            raise TypeError(
-                "Expected `access` and `mutate` to be Callable,"
-                f" got access={type(access)} mutate={type(mutate)}"
-            )
-
-    def __call__(self) -> PluginFn:
-        """
-        Convenience.
-        """
-        return self.plugin
+    def utility(self, *args: Any) -> Any:
+        return self.vote_signal(*args) # pylint: disable=no-value-for-parameter
diff --git a/dialogy/preprocess/text/duckling_plugin.py b/dialogy/preprocess/text/duckling_plugin.py
index 0b4fda6d..5503dc42 100644
--- a/dialogy/preprocess/text/duckling_plugin.py
+++ b/dialogy/preprocess/text/duckling_plugin.py
@@ -48,7 +48,7 @@ def update_workflow(workflow, entities):
 """
 import json
 from pprint import pformat
-from typing import Any, Callable, Dict, List, Optional
+from typing import Any, Dict, List, Optional
 
 import pytz
 import requests
@@ -57,8 +57,7 @@ def update_workflow(workflow, entities):
 from dialogy.constants import EntityKeys
 from dialogy.plugin import Plugin, PluginFn
 from dialogy.types.entity import BaseEntity, dimension_entity_map
-from dialogy.utils.logger import debug, log
-from dialogy.workflow import Workflow
+from dialogy.utils.logger import dbg, log
 
 
 class DucklingPlugin(Plugin):
@@ -114,7 +113,7 @@ def __init__(
         url: str = "http://0.0.0.0:8000/parse",
         access: Optional[PluginFn] = None,
         mutate: Optional[PluginFn] = None,
-        custom_entity_map: Optional[Dict[str, Any]] = None,
+        entity_map: Optional[Dict[str, Any]] = None,
         debug: bool = False,
     ) -> None:
         """
@@ -130,8 +129,8 @@ def __init__(
             "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
         }
 
-        if isinstance(custom_entity_map, dict):
-            self.dimension_entity_map = {**dimension_entity_map, **custom_entity_map}
+        if isinstance(entity_map, dict):
+            self.dimension_entity_map = {**dimension_entity_map, **entity_map}
         else:
             self.dimension_entity_map = dimension_entity_map
 
@@ -157,7 +156,7 @@ def __set_timezone(self) -> Optional[BaseTzInfo]:
                 " check valid types here: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
             ) from unknown_timezone_error
 
-    @debug(log)
+    @dbg(log)
     def __create_req_body(
         self, text: str, reference_time: Optional[int]
     ) -> Dict[str, Any]:
@@ -192,9 +191,7 @@ def __create_req_body(
 
         return payload
 
-    def _reshape(
-        self, entities_json: List[Dict[str, Any]]
-    ) -> Optional[List[BaseEntity]]:
+    def _reshape(self, entities_json: List[Dict[str, Any]]) -> List[BaseEntity]:
         """
         Create a list of :ref:`BaseEntity <base_entity>` objects from a list of entity dicts.
 
@@ -279,61 +276,28 @@ def _get_entities(
             f"Duckling API call failed | [{response.status_code}]: {response.text}"
         )
 
-    def plugin(self, workflow: Workflow) -> None:
-        """
-        Insert a list of :ref:`BaseEntity <base_entity>` objects into the Workflow.
-
-        This function is also available through the __call__ method as syntactic sugar.
-
-        :param workflow: A :ref:`Workflow <workflow>` on which the plugin should operate.
-        :return:
-        """
-        access = self.access
-        mutate = self.mutate
-        if not isinstance(access, Callable):  # type: ignore
-            raise TypeError(
-                "Expected `access` to be Callable,"
-                f" got access={type(access)} mutate={type(mutate)}"
-            )
-        if not isinstance(mutate, Callable):  # type: ignore
-            raise TypeError(
-                "Expected `mutate` to be Callable,"
-                f" got access={type(access)} mutate={type(mutate)}"
-            )
-
+    def utility(self, *args: Any) -> List[BaseEntity]:
         entities = []
-        if access and mutate:
-            input_, reference_time = access(workflow)
-            try:
-                if isinstance(input_, str):
+        input_, reference_time = args
+        try:
+            if isinstance(input_, str):
+                entities.append(
+                    self._get_entities(input_, reference_time=reference_time)
+                )
+            elif isinstance(input_, list) and all(
+                isinstance(text, str) for text in input_
+            ):
+                for text in input_:
                     entities.append(
-                        self._get_entities(input_, reference_time=reference_time)
+                        self._get_entities(text, reference_time=reference_time)
                     )
-                elif isinstance(input_, list) and all(
-                    isinstance(text, str) for text in input_
-                ):
-                    for text in input_:
-                        entities.append(
-                            self._get_entities(text, reference_time=reference_time)
-                        )
-                else:
-                    raise TypeError(f"Expected {input_} to be a List[str] or str.")
-
-                entities_flattened = [
-                    entity for entity_list in entities for entity in entity_list
-                ]
-
-                if entities_flattened:
-                    shaped_entities = self._reshape(entities_flattened)
-                    mutate(workflow, shaped_entities)
-                else:
-                    mutate(workflow, [])
-            except ValueError as value_error:
-                raise ValueError(str(value_error)) from value_error
-
-    # == __call__ ==
-    def __call__(self) -> PluginFn:
-        """
-        Syntactical sugar.
-        """
-        return self.plugin
+            else:
+                raise TypeError(f"Expected {input_} to be a List[str] or str.")
+
+            entities_flattened = [
+                entity for entity_list in entities for entity in entity_list
+            ]
+            shaped_entities = self._reshape(entities_flattened)
+            return shaped_entities
+        except ValueError as value_error:
+            raise ValueError(str(value_error)) from value_error
diff --git a/dialogy/preprocess/text/list_entity_plugin/__init__.py b/dialogy/preprocess/text/list_entity_plugin/__init__.py
new file mode 100644
index 00000000..83680054
--- /dev/null
+++ b/dialogy/preprocess/text/list_entity_plugin/__init__.py
@@ -0,0 +1,264 @@
+"""
+.. _list_entity_plugin:
+
+Module needs refactor. We are currently keeping all strategies bundled as methods as opposed to SearchStrategyClasses.
+
+Within dialogy, we extract entities using Duckling, Pattern lists and Spacy. We can ship individual plugins but at the
+same time, the difference is just configuration of each of these tools/services. There is another difference of
+intermediate structure that the DucklingPlugin expects. We need to prevent the impact of the structure from affecting
+all other entities. So that their :code:`from_dict(...)` methods are pristine and involve no shape hacking.
+"""
+import re
+from pprint import pformat
+from typing import Any, Dict, List, Optional, Tuple
+
+import pydash as py_  # type: ignore
+
+from dialogy import constants as const
+from dialogy.plugin import Plugin, PluginFn
+from dialogy.types import BaseEntity
+from dialogy.utils.logger import dbg, log
+
+MatchType = List[Tuple[str, str, Tuple[int, int]]]
+
+
+class ListEntityPlugin(Plugin):
+    """
+     A :ref:`Plugin<plugin>` for extracting entities using spacy or a list of regex patterns.
+
+     .. note: This class will undergo a series of refactoring changes. The final form will accommodate Duckling, Spacy
+        and regex based entity parsers.
+
+
+    :param entity_map: A :code:`dict` with keys as entity type and value as EntityClass
+    :type entity_map: Dict[str, BaseEntity]
+    :param style: One of ["regex", "spacy"]
+    :type style: Optional[str]
+    :param candidates: Required if style is "regex", this is a :code:`dict` that shows a mapping of entity
+        values and their patterns.
+    :type candidates: Optional[Dict[str, List[str]]]
+    :param spacy_nlp: Required if style is "spacy", this is a
+        `spacy model <https://spacy.io/usage/spacy-101#annotations-ner>`_.
+    :type spacy_nlp: Any
+    :param labels: Required if style is "spacy". If there is a need to extract only a few labels from all the other
+        `available labels <https://github.com/explosion/spaCy/issues/441#issuecomment-311804705>`_.
+    :type labels: Optional[List[str]]
+    :param access: A plugin io utility that allows access to transcripts
+        :code:`List[str]` within a :ref:`Workflow <workflow>`.
+    :type access: Optional[PluginFn]
+    :param mutate: A plugin io utility that allows insertion of :code:`List[BaseEntity]` within a
+        :ref:`Workflow <workflow>`.
+    :type mutate: Optional[PluginFn]
+    :param debug: A flag to set debugging on the plugin methods
+    :type debug: bool
+    """
+
+    def __init__(
+        self,
+        entity_map: Dict[str, BaseEntity],
+        style: Optional[str] = None,
+        candidates: Optional[Dict[str, List[str]]] = None,
+        spacy_nlp: Any = None,
+        labels: Optional[List[str]] = None,
+        access: Optional[PluginFn] = None,
+        mutate: Optional[PluginFn] = None,
+        debug: bool = False,
+    ):
+        super().__init__(access=access, mutate=mutate, debug=debug)
+        self.__style_search_map = {
+            const.SPACY: self.ner_search,
+            const.REGEX: self.regex_search,
+        }
+
+        self.style = style or const.REGEX
+        self.entity_map = entity_map
+        self.labels = labels
+        self.keywords = None
+        self.spacy_nlp = spacy_nlp
+        self.compiled_patterns: Optional[Dict[str, List[Any]]] = None
+
+        if self.style == const.REGEX:
+            self._parse(candidates)
+
+    @dbg(log)
+    def _parse(self, candidates: Optional[Dict[str, List[str]]]) -> None:
+        """
+        Pre compile regex patterns to speed up runtime evaluation.
+
+        This method's search will still be slow depending on the list of patterns.
+
+        :param candidates: A map for entity types and their pattern list.
+        :type candidates: Optional[Dict[str, List[str]]]
+        :return: None
+        :rtype: NoneType
+        """
+        log.debug(
+            pformat(
+                {
+                    "style": self.style,
+                    "candidates": candidates,
+                }
+            )
+        )
+        if not isinstance(candidates, dict):
+            raise TypeError(
+                'Expected "candidates" to be a Dict[str, List[str]]'
+                f" but {type(candidates)} was found."
+            )
+
+        if not candidates:
+            raise ValueError(
+                'Expected "candidates" to be a Dict[str, List[str]]'
+                f" but {candidates} was found."
+            )
+
+        if self.style not in self.__style_search_map:
+            raise ValueError(
+                f"Expected style to be one of {list(self.__style_search_map.keys())}"
+                f' but "{self.style}" was found.'
+            )
+
+        if self.style == const.REGEX:
+            self.compiled_patterns = {
+                label: [re.compile(pattern) for pattern in patterns]
+                for label, patterns in candidates.items()
+            }
+        log.debug("compiled patterns")
+        log.debug(self.compiled_patterns)
+
+    @dbg(log)
+    def _search(self, transcripts: List[str]) -> List[MatchType]:
+        """
+        Search for tokens in a list of strings.
+
+        :param transcripts: A list of transcripts, :code:`List[str]`.
+        :type transcripts: List[str]
+        :return: Token matches with the transcript.
+        :rtype: List[MatchType]
+        """
+        log.debug("style: %s", self.style)
+        log.debug("transcripts")
+        log.debug(transcripts)
+        search_fn = self.__style_search_map.get(self.style)
+        if not search_fn:
+            raise ValueError(
+                f"Expected style to be one of {list(self.__style_search_map.keys())}"
+                f' but "{self.style}" was found.'
+            )
+        token_list = [search_fn(transcript) for transcript in transcripts]
+        return token_list
+
+    @dbg(log)
+    def get_entities(self, transcripts: List[str]) -> List[BaseEntity]:
+        """
+        Parse entities using regex and spacy ner.
+
+        :param transcripts: A list of strings within which to search for entities.
+        :type transcripts: List[str]
+        :return: List of entities from regex matches or spacy ner.
+        :rtype: List[BaseEntity]
+        """
+        matches_on_transcripts = self._search(transcripts)
+        entity_metadata = []
+        entities = []
+
+        for i, matches_on_transcript in enumerate(matches_on_transcripts):
+            for text, label, span in matches_on_transcript:
+                entity = {
+                    "start": span[0],
+                    "end": span[1],
+                    "body": text,
+                    "dim": label,
+                    "parsers": [self.__class__.__name__],
+                    "score": 0,
+                    "alternative_index": i,
+                    "latent": False,
+                    "__group": f"{label}_{text}",
+                    "type": label,
+                    "entity_type": label,
+                    "value": {
+                        "values": [{"value": text}],
+                    },
+                }
+                entity_metadata.append(entity)
+        entity_groups = py_.group_by(entity_metadata, lambda e: e["__group"])
+        log.debug("entity groups:")
+        log.debug(pformat(entity_groups))
+
+        for _, grouped_entities in entity_groups.items():
+            entity = sorted(grouped_entities, key=lambda e: e["alternative_index"])[0]
+            del entity["__group"]
+            entity["score"] = round(len(grouped_entities) / len(transcripts), 4)
+            entity_class = self.entity_map.get(entity["type"]) or BaseEntity
+            entity = entity_class.from_dict(entity).set_value()  # type: ignore
+            entities.append(entity)
+        log.debug("Parsed entities")
+        log.debug(entities)
+        return entities  # type:ignore
+
+    def utility(self, *args: Any) -> Any:
+        return self.get_entities(*args) # pylint: disable=no-value-for-parameter
+
+    def ner_search(self, transcript: str) -> MatchType:
+        """
+        Wrapper over spacy's ner search.
+
+        :param transcript: A string to search entities within.
+        :type transcript: str
+        :return: NER parsing via spacy.
+        :rtype: MatchType
+        """
+        if not self.spacy_nlp:
+            raise ValueError(
+                "Expected spacy_nlp to be a spacy"
+                f" instance but {self.spacy_nlp} was found."
+            )
+        parsed_transcript = self.spacy_nlp(transcript)
+        if self.labels:
+            return [
+                (
+                    token.text,
+                    token.label_,
+                    (
+                        transcript.index(token.text),
+                        transcript.index(token.text) + len(token.text),
+                    ),
+                )
+                for token in parsed_transcript.ents
+                if token.label_ in self.labels
+            ]
+        else:
+            return [
+                (
+                    token.text,
+                    token.label_,
+                    (
+                        transcript.index(token.text),
+                        transcript.index(token.text) + len(token.text),
+                    ),
+                )
+                for token in parsed_transcript.ents
+            ]
+
+    def regex_search(self, transcript: str) -> MatchType:
+        """
+        Wrapper over regex searches.
+
+        :param transcript: A string to search entities within.
+        :type transcript: str
+        :return: regex parsing via spacy.
+        :rtype: MatchType
+        """
+        if not self.compiled_patterns:
+            raise TypeError(
+                "Expected compiled_patterns to be "
+                f"Dict[str, List[str]] but {type(self.compiled_patterns)} was found."
+            )
+
+        entity_tokens = []
+        for label, patterns in self.compiled_patterns.items():
+            for pattern in patterns:
+                matches = pattern.search(transcript)
+                if matches:
+                    entity_tokens.append((matches.group(), label, matches.span()))
+        return entity_tokens
diff --git a/dialogy/types/entity/base_entity.py b/dialogy/types/entity/base_entity.py
index f8335a23..b6e22129 100644
--- a/dialogy/types/entity/base_entity.py
+++ b/dialogy/types/entity/base_entity.py
@@ -239,7 +239,7 @@ def json(
             skip_ = [name for name in const.SKIP_ENTITY_ATTRS if name not in add]
         return attr.asdict(self, filter=lambda attr, _: attr.name not in skip_)
 
-    def set_value(self, value: Any = None) -> None:
+    def set_value(self, value: Any = None) -> "BaseEntity":
         """
         Set values and value attribute.
 
@@ -253,6 +253,7 @@ def set_value(self, value: Any = None) -> None:
         else:
             self.values = [{const.VALUE: value}]
             self.value = value
+        return self
 
 
 # = entity_synthesis =
diff --git a/dialogy/types/entity/time_interval_entity.py b/dialogy/types/entity/time_interval_entity.py
index 1ad26953..6fa4e685 100644
--- a/dialogy/types/entity/time_interval_entity.py
+++ b/dialogy/types/entity/time_interval_entity.py
@@ -72,7 +72,7 @@ def get_date_value(self, date: Dict[str, Any]) -> Optional[str]:
                 f"Expected at least 1 of `from` or `to` in {self.values} for {self}"
             )
 
-    def set_value(self, value: Optional[Dict[str, Any]] = None) -> None:
+    def set_value(self, value: Optional[Dict[str, Any]] = None) -> "TimeIntervalEntity":
         """
         Set values and value attribute.
 
@@ -102,6 +102,7 @@ def set_value(self, value: Optional[Dict[str, Any]] = None) -> None:
                     " or value should look like: {'to': ...,  'from': ...}"
                     f" but {type(value)} found."
                 )
+        return self
 
     def __attrs_post_init__(self) -> None:
         self.post_init()
diff --git a/dialogy/utils/logger.py b/dialogy/utils/logger.py
index 88e8cfba..395c4bfb 100644
--- a/dialogy/utils/logger.py
+++ b/dialogy/utils/logger.py
@@ -36,7 +36,7 @@ def change_log_level(logger: logging.Logger, level: Union[str, int]) -> None:
         handler.setLevel(level)
 
 
-def debug(logger: logging.Logger):
+def dbg(logger: logging.Logger):
     """
     Change debug level briefly.
 
diff --git a/dialogy/workflow/workflow.py b/dialogy/workflow/workflow.py
index e0a8a3b9..70ee0251 100644
--- a/dialogy/workflow/workflow.py
+++ b/dialogy/workflow/workflow.py
@@ -53,7 +53,7 @@
 from typing import Any, Callable, List, Optional
 
 from dialogy import constants
-from dialogy.utils.logger import debug, log
+from dialogy.utils.logger import dbg, log
 
 PluginFn = Callable[["Workflow"], None]
 
@@ -113,7 +113,7 @@ def load_model(self) -> None:
             f"Override method `load_model` in class {class_name}."
         )
 
-    @debug(log)
+    @dbg(log)
     def update(self, processor_type: str, processors: List[PluginFn]) -> None:
         """
         Update input, output attributes.
diff --git a/docs/_modules/dialogy/cli.html b/docs/_modules/dialogy/cli.html
index 112c06bf..45538801 100644
--- a/docs/_modules/dialogy/cli.html
+++ b/docs/_modules/dialogy/cli.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
@@ -171,13 +190,14 @@ <h1>Source code for dialogy.cli</h1><div class="highlight"><pre>
 <span class="sd">    :linenos:</span>
 <span class="sd">    :emphasize-lines: 1</span>
 
-<span class="sd">    dialogy create hello-world dialogy-template-simple-transformers</span>
+<span class="sd">    dialogy create hello-world</span>
 <span class="sd">    cd hello-world</span>
 <span class="sd">    poetry install</span>
 <span class="sd">    make lint</span>
 
 <span class="sd">Usage:</span>
 <span class="sd">  __init__.py create &lt;project&gt; &lt;template&gt; [--namespace=&lt;namespace&gt;]</span>
+<span class="sd">  __init__.py create &lt;project&gt;</span>
 
 <span class="sd">Options:</span>
 
@@ -196,10 +216,45 @@ <h1>Source code for dialogy.cli</h1><div class="highlight"><pre>
 <span class="sd">    --version</span>
 <span class="sd">        Show current project version.</span>
 <span class="sd">"""</span>
+<span class="kn">import</span> <span class="nn">os</span>
 
+<span class="kn">from</span> <span class="nn">copier</span> <span class="kn">import</span> <span class="n">copy</span>  <span class="c1"># type: ignore</span>
 <span class="kn">from</span> <span class="nn">docopt</span> <span class="kn">import</span> <span class="n">docopt</span>  <span class="c1"># type: ignore</span>
 
-<span class="kn">from</span> <span class="nn">dialogy.cli.project</span> <span class="kn">import</span> <span class="n">new_project</span>
+<span class="kn">from</span> <span class="nn">dialogy.cli.project</span> <span class="kn">import</span> <span class="n">canonicalize_project_name</span>
+<span class="kn">from</span> <span class="nn">dialogy.utils.logger</span> <span class="kn">import</span> <span class="n">log</span>
+
+
+<div class="viewcode-block" id="new_project"><a class="viewcode-back" href="../../source/dialogy.cli.html#dialogy.cli.new_project">[docs]</a><span class="k">def</span> <span class="nf">new_project</span><span class="p">(</span>
+    <span class="n">destination_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span>
+    <span class="n">template</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"dialogy-template-simple-transformers"</span><span class="p">,</span>
+    <span class="n">namespace</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"vernacular-ai"</span><span class="p">,</span>
+<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+    <span class="sd">"""</span>
+<span class="sd">    Create a new project using scaffolding from an existing template.</span>
+
+<span class="sd">    This function uses `copier's &lt;https://copier.readthedocs.io/en/stable/&gt;`_ `copy &lt;https://copier.readthedocs.io/en/stable/#quick-usage&gt;`_ to use an existing template.</span>
+
+<span class="sd">    An example template is `here: &lt;https://github.com/Vernacular-ai/dialogy-template-simple-transformers&gt;`_.</span>
+
+<span class="sd">    :param destination_path: The directory where the scaffolding must be generated, creates a dir if missing but aborts if there are files already in the specified location.</span>
+<span class="sd">    :type destination_path: str</span>
+<span class="sd">    :param template: Scaffolding will be generated using a copier template project. This is the link to the project.</span>
+<span class="sd">    :type template: str</span>
+<span class="sd">    :param namespace: The user or the organization that supports the template, defaults to "vernacular-ai"</span>
+<span class="sd">    :type namespace: str, optional</span>
+<span class="sd">    :return: None</span>
+<span class="sd">    :rtype: NoneType</span>
+<span class="sd">    """</span>
+    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">destination_path</span><span class="p">):</span>
+        <span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">destination_path</span><span class="p">)</span>
+
+    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">destination_path</span><span class="p">):</span>
+        <span class="n">log</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"There are files on the destination path. Aborting !"</span><span class="p">)</span>
+        <span class="k">return</span> <span class="kc">None</span>
+
+    <span class="n">copy</span><span class="p">(</span><span class="sa">f</span><span class="s2">"gh:</span><span class="si">{</span><span class="n">namespace</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="n">template</span><span class="si">}</span><span class="s2">.git"</span><span class="p">,</span> <span class="n">destination_path</span><span class="p">)</span>
+    <span class="k">return</span> <span class="kc">None</span></div>
 
 
 <div class="viewcode-block" id="main"><a class="viewcode-back" href="../../source/dialogy.cli.html#dialogy.cli.main">[docs]</a><span class="k">def</span> <span class="nf">main</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
@@ -211,10 +266,8 @@ <h1>Source code for dialogy.cli</h1><div class="highlight"><pre>
     <span class="n">template_name</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="s2">"&lt;template&gt;"</span><span class="p">]</span>
     <span class="n">namespace</span> <span class="o">=</span> <span class="n">args</span><span class="p">[</span><span class="s2">"--namespace"</span><span class="p">]</span>
 
-    <span class="k">if</span> <span class="ow">not</span> <span class="n">namespace</span><span class="p">:</span>
-        <span class="n">new_project</span><span class="p">(</span><span class="n">project_name</span><span class="p">,</span> <span class="n">template_name</span><span class="p">)</span>
-    <span class="k">else</span><span class="p">:</span>
-        <span class="n">new_project</span><span class="p">(</span><span class="n">project_name</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">namespace</span><span class="o">=</span><span class="n">namespace</span><span class="p">)</span></div>
+    <span class="n">template_name</span><span class="p">,</span> <span class="n">namespace</span> <span class="o">=</span> <span class="n">canonicalize_project_name</span><span class="p">(</span><span class="n">template_name</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span>
+    <span class="n">new_project</span><span class="p">(</span><span class="n">project_name</span><span class="p">,</span> <span class="n">template_name</span><span class="p">,</span> <span class="n">namespace</span><span class="p">)</span></div>
 </pre></div>
       </article>
       <footer>
diff --git a/docs/_modules/dialogy/cli/project.html b/docs/_modules/dialogy/cli/project.html
index a192723c..271f7b53 100644
--- a/docs/_modules/dialogy/cli/project.html
+++ b/docs/_modules/dialogy/cli/project.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
@@ -164,28 +183,17 @@
           <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
         </label>
         <h1>Source code for dialogy.cli.project</h1><div class="highlight"><pre>
-<span></span><span class="sd">"""</span>
-<span class="sd">This module offers utilities to create a new project from a given template.</span>
-<span class="sd">"""</span>
-<span class="kn">import</span> <span class="nn">os</span>
-
-<span class="kn">from</span> <span class="nn">copier</span> <span class="kn">import</span> <span class="n">copy</span>  <span class="c1"># type: ignore</span>
+<span></span><span class="kn">from</span> <span class="nn">typing</span> <span class="kn">import</span> <span class="n">Optional</span><span class="p">,</span> <span class="n">Tuple</span>
 
-<span class="kn">from</span> <span class="nn">dialogy.utils.logger</span> <span class="kn">import</span> <span class="n">log</span>
+<span class="n">DEFAULT_NAMESPACE</span> <span class="o">=</span> <span class="s2">"vernacular-ai"</span>
+<span class="n">DEFAULT_PROJECT_TEMPLATE</span> <span class="o">=</span> <span class="s2">"dialogy-template-simple-transformers"</span>
 
 
-<div class="viewcode-block" id="new_project"><a class="viewcode-back" href="../../../source/dialogy.cli.html#dialogy.cli.project.new_project">[docs]</a><span class="k">def</span> <span class="nf">new_project</span><span class="p">(</span>
-    <span class="n">destination_path</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">template</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">namespace</span><span class="p">:</span> <span class="nb">str</span> <span class="o">=</span> <span class="s2">"vernacular-ai"</span>
-<span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
+<div class="viewcode-block" id="canonicalize_project_name"><a class="viewcode-back" href="../../../source/dialogy.cli.html#dialogy.cli.project.canonicalize_project_name">[docs]</a><span class="k">def</span> <span class="nf">canonicalize_project_name</span><span class="p">(</span>
+    <span class="n">template</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+    <span class="n">namespace</span><span class="p">:</span> <span class="n">Optional</span><span class="p">[</span><span class="nb">str</span><span class="p">]</span> <span class="o">=</span> <span class="kc">None</span><span class="p">,</span>
+<span class="p">)</span> <span class="o">-&gt;</span> <span class="n">Tuple</span><span class="p">[</span><span class="nb">str</span><span class="p">,</span> <span class="nb">str</span><span class="p">]:</span>
     <span class="sd">"""</span>
-<span class="sd">    Create a new project using scaffolding from an existing template.</span>
-
-<span class="sd">    This function uses `copier's &lt;https://copier.readthedocs.io/en/stable/&gt;`_ `copy &lt;https://copier.readthedocs.io/en/stable/#quick-usage&gt;`_ to use an existing template.</span>
-
-<span class="sd">    An example template is `here: &lt;https://github.com/Vernacular-ai/dialogy-template-simple-transformers&gt;`_.</span>
-
-<span class="sd">    :param destination_path: The directory where the scaffolding must be generated, creates a dir if missing but aborts if there are files already in the specified location.</span>
-<span class="sd">    :type destination_path: str</span>
 <span class="sd">    :param template: Scaffolding will be generated using a copier template project. This is the link to the project.</span>
 <span class="sd">    :type template: str</span>
 <span class="sd">    :param namespace: The user or the organization that supports the template, defaults to "vernacular-ai"</span>
@@ -193,15 +201,9 @@ <h1>Source code for dialogy.cli.project</h1><div class="highlight"><pre>
 <span class="sd">    :return: None</span>
 <span class="sd">    :rtype: NoneType</span>
 <span class="sd">    """</span>
-    <span class="k">if</span> <span class="ow">not</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">exists</span><span class="p">(</span><span class="n">destination_path</span><span class="p">):</span>
-        <span class="n">os</span><span class="o">.</span><span class="n">mkdir</span><span class="p">(</span><span class="n">destination_path</span><span class="p">)</span>
-
-    <span class="k">if</span> <span class="n">os</span><span class="o">.</span><span class="n">listdir</span><span class="p">(</span><span class="n">destination_path</span><span class="p">):</span>
-        <span class="n">log</span><span class="o">.</span><span class="n">error</span><span class="p">(</span><span class="s2">"There are files on the destination path. Aborting !"</span><span class="p">)</span>
-        <span class="k">return</span> <span class="kc">None</span>
-
-    <span class="n">copy</span><span class="p">(</span><span class="sa">f</span><span class="s2">"gh:</span><span class="si">{</span><span class="n">namespace</span><span class="si">}</span><span class="s2">/</span><span class="si">{</span><span class="n">template</span><span class="si">}</span><span class="s2">.git"</span><span class="p">,</span> <span class="n">destination_path</span><span class="p">)</span>
-    <span class="k">return</span> <span class="kc">None</span></div>
+    <span class="n">template</span> <span class="o">=</span> <span class="n">template</span> <span class="ow">or</span> <span class="n">DEFAULT_PROJECT_TEMPLATE</span>
+    <span class="n">namespace</span> <span class="o">=</span> <span class="n">namespace</span> <span class="ow">or</span> <span class="n">DEFAULT_NAMESPACE</span>
+    <span class="k">return</span> <span class="n">template</span><span class="p">,</span> <span class="n">namespace</span></div>
 </pre></div>
       </article>
       <footer>
diff --git a/docs/_modules/dialogy/constants.html b/docs/_modules/dialogy/constants.html
index b832a017..eda0a6f4 100644
--- a/docs/_modules/dialogy/constants.html
+++ b/docs/_modules/dialogy/constants.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/plugin/plugin.html b/docs/_modules/dialogy/plugin/plugin.html
index 82644f33..65e3c4aa 100644
--- a/docs/_modules/dialogy/plugin/plugin.html
+++ b/docs/_modules/dialogy/plugin/plugin.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/postprocess/text/slot_filler/rule_slot_filler.html b/docs/_modules/dialogy/postprocess/text/slot_filler/rule_slot_filler.html
index 41eba4f8..7ce55a8c 100644
--- a/docs/_modules/dialogy/postprocess/text/slot_filler/rule_slot_filler.html
+++ b/docs/_modules/dialogy/postprocess/text/slot_filler/rule_slot_filler.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/postprocess/text/voting/intent_voting.html b/docs/_modules/dialogy/postprocess/text/voting/intent_voting.html
index d9dae82f..fa6ab405 100644
--- a/docs/_modules/dialogy/postprocess/text/voting/intent_voting.html
+++ b/docs/_modules/dialogy/postprocess/text/voting/intent_voting.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/preprocess/text/duckling_plugin.html b/docs/_modules/dialogy/preprocess/text/duckling_plugin.html
index 45ae3d12..c1ee7203 100644
--- a/docs/_modules/dialogy/preprocess/text/duckling_plugin.html
+++ b/docs/_modules/dialogy/preprocess/text/duckling_plugin.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/preprocess/text/merge_asr_output.html b/docs/_modules/dialogy/preprocess/text/merge_asr_output.html
index 28d35de7..a25ee85e 100644
--- a/docs/_modules/dialogy/preprocess/text/merge_asr_output.html
+++ b/docs/_modules/dialogy/preprocess/text/merge_asr_output.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/preprocess/text/normalize_utterance.html b/docs/_modules/dialogy/preprocess/text/normalize_utterance.html
index f75d3e88..c986e20f 100644
--- a/docs/_modules/dialogy/preprocess/text/normalize_utterance.html
+++ b/docs/_modules/dialogy/preprocess/text/normalize_utterance.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/entity/base_entity.html b/docs/_modules/dialogy/types/entity/base_entity.html
index 3457279c..12628f21 100644
--- a/docs/_modules/dialogy/types/entity/base_entity.html
+++ b/docs/_modules/dialogy/types/entity/base_entity.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/entity/duration_entity.html b/docs/_modules/dialogy/types/entity/duration_entity.html
index 7943adc1..40871d7d 100644
--- a/docs/_modules/dialogy/types/entity/duration_entity.html
+++ b/docs/_modules/dialogy/types/entity/duration_entity.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
diff --git a/docs/_modules/dialogy/types/entity/location_entity.html b/docs/_modules/dialogy/types/entity/location_entity.html
index e2220bd3..eaa557e0 100644
--- a/docs/_modules/dialogy/types/entity/location_entity.html
+++ b/docs/_modules/dialogy/types/entity/location_entity.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
diff --git a/docs/_modules/dialogy/types/entity/numerical_entity.html b/docs/_modules/dialogy/types/entity/numerical_entity.html
index 63845e3f..60198052 100644
--- a/docs/_modules/dialogy/types/entity/numerical_entity.html
+++ b/docs/_modules/dialogy/types/entity/numerical_entity.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/entity/people_entity.html b/docs/_modules/dialogy/types/entity/people_entity.html
index 9228c048..1d66ba58 100644
--- a/docs/_modules/dialogy/types/entity/people_entity.html
+++ b/docs/_modules/dialogy/types/entity/people_entity.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
diff --git a/docs/_modules/dialogy/types/entity/time_entity.html b/docs/_modules/dialogy/types/entity/time_entity.html
index 2290040b..6994ecb0 100644
--- a/docs/_modules/dialogy/types/entity/time_entity.html
+++ b/docs/_modules/dialogy/types/entity/time_entity.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/entity/time_interval_entity.html b/docs/_modules/dialogy/types/entity/time_interval_entity.html
index 72410b28..c43e38a8 100644
--- a/docs/_modules/dialogy/types/entity/time_interval_entity.html
+++ b/docs/_modules/dialogy/types/entity/time_interval_entity.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/intent.html b/docs/_modules/dialogy/types/intent.html
index a9cc823d..5ca4278f 100644
--- a/docs/_modules/dialogy/types/intent.html
+++ b/docs/_modules/dialogy/types/intent.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/types/slots.html b/docs/_modules/dialogy/types/slots.html
index ba2abd13..032b71f5 100644
--- a/docs/_modules/dialogy/types/slots.html
+++ b/docs/_modules/dialogy/types/slots.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
diff --git a/docs/_modules/dialogy/utils.html b/docs/_modules/dialogy/utils.html
index 17063e34..125478f4 100644
--- a/docs/_modules/dialogy/utils.html
+++ b/docs/_modules/dialogy/utils.html
@@ -108,47 +108,66 @@
   <input type="hidden" name="check_keywords" value="yes">
   <input type="hidden" name="area" value="default">
 </form><div class="sidebar-scroll"><div class="sidebar-tree">
-  <p><span class="caption-text">Contents:</span></p>
-<ul>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/modules.html">dialogy</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.html">dialogy package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.cli.html">dialogy.cli package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.constants.html">dialogy.constants package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+  <ul>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
-<li class="toctree-l5"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
 </ul>
 </li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
 </ul>
 </li>
-<li class="toctree-l3 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
-<li class="toctree-l4"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.utils.html">dialogy.utils package</a></li>
-<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
 </ul>
 </li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="../../source/dialogy.workflow.html">dialogy.workflow package</a></li>
 </ul>
 
 </div>
diff --git a/docs/_modules/dialogy/utils/logger.html b/docs/_modules/dialogy/utils/logger.html
index c623de55..4e029826 100644
--- a/docs/_modules/dialogy/utils/logger.html
+++ b/docs/_modules/dialogy/utils/logger.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/dialogy/workflow/workflow.html b/docs/_modules/dialogy/workflow/workflow.html
index f23138a6..a0031de7 100644
--- a/docs/_modules/dialogy/workflow/workflow.html
+++ b/docs/_modules/dialogy/workflow/workflow.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../../../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../../../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../../../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_modules/index.html b/docs/_modules/index.html
index a5a534a5..7d481562 100644
--- a/docs/_modules/index.html
+++ b/docs/_modules/index.html
@@ -140,11 +140,18 @@
 <li class="toctree-l1"><a class="reference internal" href="../source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="../source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="../source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="../source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="../source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="../source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="../source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/_sources/source/dialogy.preprocess.text.list_entity_plugin.rst.txt b/docs/_sources/source/dialogy.preprocess.text.list_entity_plugin.rst.txt
new file mode 100644
index 00000000..600ff384
--- /dev/null
+++ b/docs/_sources/source/dialogy.preprocess.text.list_entity_plugin.rst.txt
@@ -0,0 +1,10 @@
+dialogy.preprocess.text.list\_entity\_plugin package
+====================================================
+
+Module contents
+---------------
+
+.. automodule:: dialogy.preprocess.text.list_entity_plugin
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs/_sources/source/dialogy.preprocess.text.rst.txt b/docs/_sources/source/dialogy.preprocess.text.rst.txt
index 6c5d7cb2..acfd127a 100644
--- a/docs/_sources/source/dialogy.preprocess.text.rst.txt
+++ b/docs/_sources/source/dialogy.preprocess.text.rst.txt
@@ -1,6 +1,14 @@
 dialogy.preprocess.text package
 ===============================
 
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 4
+
+   dialogy.preprocess.text.list_entity_plugin
+
 Submodules
 ----------
 
diff --git a/docs/genindex.html b/docs/genindex.html
index 2d468cc5..c979c033 100644
--- a/docs/genindex.html
+++ b/docs/genindex.html
@@ -139,11 +139,18 @@
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -219,12 +226,14 @@ <h2>B</h2>
   <h2>C</h2>
   <table style="width: 100%" class="indextable genindextable"><tr>
     <td style="width: 33%; vertical-align: top;"><ul>
-        <li><a href="source/dialogy.utils.html#dialogy.utils.logger.change_log_level">change_log_level() (in module dialogy.utils.logger)</a>
+        <li><a href="source/dialogy.cli.html#dialogy.cli.project.canonicalize_project_name">canonicalize_project_name() (in module dialogy.cli.project)</a>
 </li>
-        <li><a href="source/dialogy.types.intent.html#dialogy.types.intent.Intent.cleanup">cleanup() (dialogy.types.intent.Intent method)</a>
+        <li><a href="source/dialogy.utils.html#dialogy.utils.logger.change_log_level">change_log_level() (in module dialogy.utils.logger)</a>
 </li>
     </ul></td>
     <td style="width: 33%; vertical-align: top;"><ul>
+        <li><a href="source/dialogy.types.intent.html#dialogy.types.intent.Intent.cleanup">cleanup() (dialogy.types.intent.Intent method)</a>
+</li>
         <li><a href="source/dialogy.types.slots.html#dialogy.types.slots.Slot.clear">clear() (dialogy.types.slots.Slot method)</a>
 </li>
         <li><a href="source/dialogy.types.entity.html#dialogy.types.entity.base_entity.BaseEntity.copy">copy() (dialogy.types.entity.base_entity.BaseEntity method)</a>
@@ -780,7 +789,7 @@ <h2>N</h2>
     <td style="width: 33%; vertical-align: top;"><ul>
         <li><a href="source/dialogy.constants.html#dialogy.constants.SIGNAL.NAME">NAME (dialogy.constants.SIGNAL attribute)</a>
 </li>
-        <li><a href="source/dialogy.cli.html#dialogy.cli.project.new_project">new_project() (in module dialogy.cli.project)</a>
+        <li><a href="source/dialogy.cli.html#dialogy.cli.new_project">new_project() (in module dialogy.cli)</a>
 </li>
     </ul></td>
     <td style="width: 33%; vertical-align: top;"><ul>
diff --git a/docs/index.html b/docs/index.html
index 24f35c2a..d7f67622 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -228,6 +235,7 @@ <h2>Sections 📄<a class="headerlink" href="#sections" title="Permalink to this
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.html">dialogy.preprocess package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
diff --git a/docs/objects.inv b/docs/objects.inv
index bc6a48cf..1d978f98 100644
Binary files a/docs/objects.inv and b/docs/objects.inv differ
diff --git a/docs/py-modindex.html b/docs/py-modindex.html
index 3fa49505..01edc6dc 100644
--- a/docs/py-modindex.html
+++ b/docs/py-modindex.html
@@ -139,11 +139,18 @@
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/search.html b/docs/search.html
index 5876e813..83849f7c 100644
--- a/docs/search.html
+++ b/docs/search.html
@@ -138,11 +138,18 @@
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="source/dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="source/dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="source/dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="source/dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/searchindex.js b/docs/searchindex.js
index 29fe239f..918292aa 100644
--- a/docs/searchindex.js
+++ b/docs/searchindex.js
@@ -1,1 +1,1 @@
-Search.setIndex({docnames:["index","source/dialogy","source/dialogy.cli","source/dialogy.constants","source/dialogy.parser","source/dialogy.parser.text","source/dialogy.parser.text.entity","source/dialogy.plugin","source/dialogy.postprocess","source/dialogy.postprocess.text","source/dialogy.postprocess.text.slot_filler","source/dialogy.postprocess.text.voting","source/dialogy.preprocess","source/dialogy.preprocess.text","source/dialogy.types","source/dialogy.types.entity","source/dialogy.types.intent","source/dialogy.types.plugin","source/dialogy.types.signal","source/dialogy.types.slots","source/dialogy.types.utterances","source/dialogy.utils","source/dialogy.workflow","source/modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","source/dialogy.rst","source/dialogy.cli.rst","source/dialogy.constants.rst","source/dialogy.parser.rst","source/dialogy.parser.text.rst","source/dialogy.parser.text.entity.rst","source/dialogy.plugin.rst","source/dialogy.postprocess.rst","source/dialogy.postprocess.text.rst","source/dialogy.postprocess.text.slot_filler.rst","source/dialogy.postprocess.text.voting.rst","source/dialogy.preprocess.rst","source/dialogy.preprocess.text.rst","source/dialogy.types.rst","source/dialogy.types.entity.rst","source/dialogy.types.intent.rst","source/dialogy.types.plugin.rst","source/dialogy.types.signal.rst","source/dialogy.types.slots.rst","source/dialogy.types.utterances.rst","source/dialogy.utils.rst","source/dialogy.workflow.rst","source/modules.rst"],objects:{"":{dialogy:[1,0,0,"-"]},"dialogy.cli":{main:[2,1,1,""],project:[2,0,0,"-"]},"dialogy.cli.project":{new_project:[2,1,1,""]},"dialogy.constants":{EntityKeys:[3,2,1,""],SIGNAL:[3,2,1,""]},"dialogy.constants.EntityKeys":{BODY:[3,3,1,""],DIM:[3,3,1,""],DURATION:[3,3,1,""],END:[3,3,1,""],FROM:[3,3,1,""],GRAIN:[3,3,1,""],INTERVAL:[3,3,1,""],LATENT:[3,3,1,""],ORIGIN:[3,3,1,""],RANGE:[3,3,1,""],SLOT_NAMES:[3,3,1,""],START:[3,3,1,""],TO:[3,3,1,""],TYPE:[3,3,1,""],UNIT:[3,3,1,""],VALUE:[3,3,1,""],VALUES:[3,3,1,""]},"dialogy.constants.SIGNAL":{NAME:[3,3,1,""],REPRESENTATION:[3,3,1,""],STRENGTH:[3,3,1,""]},"dialogy.parser":{text:[5,0,0,"-"]},"dialogy.parser.text":{entity:[6,0,0,"-"]},"dialogy.parser.text.entity":{duckling_parser:[6,0,0,"-"]},"dialogy.plugin":{plugin:[7,0,0,"-"]},"dialogy.plugin.plugin":{Plugin:[7,2,1,""]},"dialogy.postprocess":{text:[9,0,0,"-"]},"dialogy.postprocess.text":{slot_filler:[10,0,0,"-"],voting:[11,0,0,"-"]},"dialogy.postprocess.text.slot_filler":{rule_slot_filler:[10,0,0,"-"]},"dialogy.postprocess.text.slot_filler.rule_slot_filler":{RuleBasedSlotFillerPlugin:[10,2,1,""]},"dialogy.postprocess.text.slot_filler.rule_slot_filler.RuleBasedSlotFillerPlugin":{plugin:[10,4,1,""]},"dialogy.postprocess.text.voting":{intent_voting:[11,0,0,"-"]},"dialogy.postprocess.text.voting.intent_voting":{VotePlugin:[11,2,1,""],adjust_signal_strength:[11,1,1,""]},"dialogy.postprocess.text.voting.intent_voting.VotePlugin":{plugin:[11,4,1,""],vote_signal:[11,4,1,""]},"dialogy.preprocess":{text:[13,0,0,"-"]},"dialogy.preprocess.text":{duckling_plugin:[13,0,0,"-"],merge_asr_output:[13,0,0,"-"],normalize_utterance:[13,0,0,"-"]},"dialogy.preprocess.text.duckling_plugin":{DucklingPlugin:[13,2,1,""]},"dialogy.preprocess.text.duckling_plugin.DucklingPlugin":{plugin:[13,4,1,""]},"dialogy.preprocess.text.merge_asr_output":{merge_asr_output:[13,1,1,""],merge_asr_output_plugin:[13,1,1,""]},"dialogy.preprocess.text.normalize_utterance":{dict_get:[13,1,1,""],is_each_element:[13,1,1,""],is_list:[13,1,1,""],is_list_of_string:[13,1,1,""],is_string:[13,1,1,""],is_unsqueezed_utterance:[13,1,1,""],is_utterance:[13,1,1,""],normalize:[13,1,1,""]},"dialogy.types":{entity:[15,0,0,"-"],intent:[16,0,0,"-"],plugin:[17,0,0,"-"],signal:[18,0,0,"-"],slots:[19,0,0,"-"],utterances:[20,0,0,"-"]},"dialogy.types.entity":{base_entity:[15,0,0,"-"],duration_entity:[15,0,0,"-"],location_entity:[15,0,0,"-"],numerical_entity:[15,0,0,"-"],people_entity:[15,0,0,"-"],time_entity:[15,0,0,"-"],time_interval_entity:[15,0,0,"-"]},"dialogy.types.entity.base_entity":{BaseEntity:[15,2,1,""],entity_synthesis:[15,1,1,""]},"dialogy.types.entity.base_entity.BaseEntity":{add_parser:[15,4,1,""],copy:[15,4,1,""],entity_type:[15,3,1,""],from_dict:[15,4,1,""],get_value:[15,4,1,""],json:[15,4,1,""],reshape:[15,4,1,""],set_value:[15,4,1,""],validate:[15,4,1,""],value:[15,3,1,""]},"dialogy.types.entity.duration_entity":{DurationEntity:[15,2,1,""]},"dialogy.types.entity.duration_entity.DurationEntity":{entity_type:[15,3,1,""],value:[15,3,1,""]},"dialogy.types.entity.location_entity":{LocationEntity:[15,2,1,""]},"dialogy.types.entity.location_entity.LocationEntity":{entity_type:[15,3,1,""],value:[15,3,1,""]},"dialogy.types.entity.numerical_entity":{NumericalEntity:[15,2,1,""]},"dialogy.types.entity.numerical_entity.NumericalEntity":{entity_type:[15,3,1,""],value:[15,3,1,""]},"dialogy.types.entity.people_entity":{PeopleEntity:[15,2,1,""]},"dialogy.types.entity.people_entity.PeopleEntity":{entity_type:[15,3,1,""],value:[15,3,1,""]},"dialogy.types.entity.time_entity":{TimeEntity:[15,2,1,""]},"dialogy.types.entity.time_entity.TimeEntity":{dim:[15,3,1,""],entity_type:[15,3,1,""],get_date_value:[15,4,1,""],is_uniq_date_from_values:[15,4,1,""],is_uniq_day_from_values:[15,4,1,""],post_init:[15,4,1,""],reshape:[15,4,1,""],set_entity_type:[15,4,1,""],value:[15,3,1,""]},"dialogy.types.entity.time_interval_entity":{TimeIntervalEntity:[15,2,1,""]},"dialogy.types.entity.time_interval_entity.TimeIntervalEntity":{dim:[15,3,1,""],entity_type:[15,3,1,""],get_date_value:[15,4,1,""],origin:[15,3,1,""],reshape:[15,4,1,""],set_value:[15,4,1,""],value:[15,3,1,""]},"dialogy.types.intent":{Intent:[16,2,1,""]},"dialogy.types.intent.Intent":{add_parser:[16,4,1,""],apply:[16,4,1,""],cleanup:[16,4,1,""],fill_slot:[16,4,1,""],json:[16,4,1,""]},"dialogy.types.signal":{signal:[18,0,0,"-"]},"dialogy.types.slots":{Slot:[19,2,1,""]},"dialogy.types.slots.Slot":{add:[19,4,1,""],clear:[19,4,1,""],json:[19,4,1,""]},"dialogy.utils":{logger:[21,0,0,"-"],traverse_dict:[21,1,1,""],validate_type:[21,1,1,""]},"dialogy.utils.logger":{change_log_level:[21,1,1,""],debug:[21,1,1,""]},"dialogy.workflow":{workflow:[22,0,0,"-"]},"dialogy.workflow.workflow":{Workflow:[22,2,1,""]},"dialogy.workflow.workflow.Workflow":{flush:[22,4,1,""],inference:[22,4,1,""],load_model:[22,4,1,""],postprocess:[22,4,1,""],preprocess:[22,4,1,""],run:[22,4,1,""],update:[22,4,1,""]},dialogy:{cli:[2,0,0,"-"],constants:[3,0,0,"-"],parser:[4,0,0,"-"],plugin:[7,0,0,"-"],postprocess:[8,0,0,"-"],preprocess:[12,0,0,"-"],types:[14,0,0,"-"],utils:[21,0,0,"-"],workflow:[22,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"000":15,"16t16":15,"17t16":15,"1996":15,"19t00":15,"1st":15,"2019":15,"2021":15,"2022":15,"2023":15,"27th":15,"29th":15,"3pm":15,"4pm":15,"556a11057179":21,"5pm":15,"639":13,"6pm":15,"6th":15,"7th":15,"8000":13,"abstract":[7,22],"case":[7,11,13,15,16,22],"class":[0,3,7,10,11,13,15,16,19,21,22],"const":[13,15],"default":[2,11,13,15,22],"export":0,"final":22,"float":[11,13,15,16],"function":[2,7,11,13,15,16,21,22],"import":[0,3,10,11,13,15,16,17,19,20,21],"int":[11,15,16,21],"long":22,"new":[2,15],"return":[2,10,11,13,15,16,19,21,22],"static":7,"true":[10,11,13,15,16,21,22],"try":21,"while":[7,11,15],Its:15,LMs:13,Not:10,One:[21,22],That:13,The:[2,7,11,13,15,16,21,22],There:[13,14,16,21,22],These:[7,13,15,22],Use:[11,15,22],Uses:22,__call__:13,__init__:[2,7,21],__postprocessor:22,__preprocessor:22,__valid:15,_oos_:11,_plugin:7,abl:13,abort:2,about:[11,13,15],accept:0,access:[7,10,11,13,15,17,21,22],across:13,act:14,action:[10,15,16,22],action_slot:10,adapt:13,add:[15,19],add_pars:[15,16],added:15,addit:[7,10],address:[13,15],adjust_signal_strength:11,advanc:22,advantag:1,affect:0,affirm:11,after:[0,15,22],against:22,aggreg:11,aggregate_fn:11,agnost:0,ahead:15,aim:22,air:14,algorithm:11,all:[0,11,13,15,19,21],allow:[10,11,22],alpha2:13,alreadi:[2,14],also:[13,15],altern:[11,13,20],alternative_index:[10,15,16],analog:21,ani:[2,7,10,11,13,15,16,19,21,22],anomali:11,anoth:22,anticip:22,anyon:[],anyth:22,apart:22,api:[7,13],appli:[7,13,15,16,21],applic:[0,22],april:15,arbitrari:[13,15,22],arg:[15,21,22],arg_nam:21,argument:[11,13,22],arrang:10,artifact:13,asia:13,ask:13,asr:[11,13],assert:21,assist:[10,13],associ:[10,14,16],assum:[7,22],assumpt:0,attempt:11,attr_nam:[],attribut:[15,16,22],audio:13,avail:[13,15,21],back:21,bad:22,base:[0,3,7,10,11,13,15,16,19,22],base_ent:[1,14,16,19],base_entity_prop:3,baseent:[10,13,15,16,19,22],battri:0,becaus:[13,15,22],been:[15,22],beep:21,befor:[13,22],being:[7,11,15,21],best:[11,13],better:7,between:[10,14,15,22],beyond:11,bit:10,bloat:15,block:22,bodi:[3,10,15,16],boilerpl:0,book:15,bool:[7,10,11,13,15,16,22],boost:11,booster:11,bop:21,both:15,box:7,briefli:21,build:[0,22],built:[7,11],bunch:22,bundl:22,call:[13,15,16,21],callabl:[7,10,11,13,15,16,22],can:[0,7,10,11,13,14,15,16,19,22],candid:11,care:22,categori:10,caution:[11,13,15],certain:[10,13],challeng:7,chanc:13,chang:[7,15,21,22],change_log_level:21,check:[10,13,15,16,21,22],children:15,choic:[0,22],classifi:[10,11,22],classmethod:15,cleanup:16,clear:19,cli:[0,1,23],cls:15,code:[0,13],collat:22,collect:[0,15],com:[10,13],command:2,common:13,compat:10,compli:15,complianc:15,compon:0,comput:22,concat:13,concaten:[11,13],conceal:15,concept:22,condit:[21,22],conduit:22,confid:11,configur:[10,13,16,21],connect:13,consensu:11,consid:[11,14],consider:[11,22],consist:13,constant:[0,1,23],constitu:11,constraint:22,contain:[10,11,15,16],content:23,context:7,contextu:11,continu:11,conveni:[7,22],convent:7,convers:14,convert:[15,16,19],copi:[2,15],copier:2,core:22,corpu:7,corpus_dir:7,corpus_fil:7,cost:13,could:[11,15,22],count:11,count_peopl:10,counterpart:11,countri:13,coupl:[15,22],cover:[13,15],creat:[0,2,7,10,13,15,16],critic:21,currenc:13,current:[2,10,15,19,22],custom:7,custom_entity_map:13,customplugin:7,cuz:13,dai:15,dampen:11,data:[2,13,15],databas:13,dataset:2,date:[13,14,15],datetim:15,debug:[7,10,11,13,15,16,21,22],debug_log:[],decemb:15,decid:11,decor:21,deep:15,deepli:21,def:[7,11,13],defin:[10,11,13,15,17,22],definit:[13,16,19],demo:[16,22],denot:15,depend:[15,22],depict:11,deploi:13,deprec:6,describ:21,design:[7,10,11,22],desir:22,destin:14,destination_path:2,detail:[0,13,16],develop:13,dialog:10,dict:[10,13,15,16,19,21],dict_:15,dict_get:13,dict_travers:21,dictionari:[15,16,19,21],did:[11,15],didn:15,differ:[7,11,13,15,16],dim:[3,10,15],dimens:[13,15],dir:2,directli:[7,22],directori:2,dissimilar:13,document:13,doe:10,doesn:[13,15,21],don:[7,21],done:13,down:13,downstream:13,drop:22,duckl:[13,15],duckling_ent:13,duckling_pars:[4,5,13],duckling_plugin:[1,12],duckling_time_ent:15,ducklingpars:6,ducklingplug:6,ducklingplugin:[0,6,7,13,22],due:21,durat:[3,13,15],duration_ent:[1,14],durationent:15,dynam:7,each:[10,11,13,15],eas:11,easi:0,either:[14,15,21],elect:11,element:[10,13,15,21,22],els:[11,13,15],emit:11,en_gb:13,en_in:13,en_u:13,encourag:7,end:[3,7,10,13,15],enforc:22,english:10,entiti:[0,1,4,5,10,13,14,16,19,21,22],entity_synthesi:15,entity_typ:[10,15],entitykei:3,error:21,especi:13,etc:[13,15,22],evalu:11,even:[7,10],everi:22,everyth:13,evid:11,exampl:[2,7,10,13,14,15],except:21,exclus:21,execut:[21,22],exhibit:[2,22],exist:[2,7,13,21],expect:[7,10,11,13,14,15,22],experi:13,explicit:15,explicitli:15,explor:16,expos:[2,7,13],express:13,extend:7,extern:7,extra:13,extract:[10,13,19],facilit:13,fact:13,fail:[11,13],fairli:22,fallback:11,fallback_int:11,fals:[7,10,11,13,15,16,22],faq:10,featur:7,few:[0,7,10,14,22],field:13,file:2,file_path:7,fill:[10,14,16,19,22],fill_multipl:[10,16],fill_slot:16,filler:10,filter:[11,15,22],find:11,fine:13,first:21,fix:15,flag:[],flatten:13,flavor:15,flexibl:22,flight:15,flush:22,focu:0,follow:22,foreign:22,forest:11,fork:13,form:13,format:[10,13,15],found:10,framework:0,free:[7,13],frequenc:11,from:[2,3,7,10,11,13,15,16,21,22],from_dict:15,func:[],gap:11,gener:[2,11,14],genindex:[],geographi:13,geopointent:15,get:[0,10,13,15,22],get_date_valu:15,get_valu:15,getworkflowutterancefn:[13,17],github:13,given:[2,13,15,21],goe:11,good:[],grain:[3,15],graviti:22,great:13,ground:22,group:11,guid:13,had:11,hamper:7,handl:[7,10,11,13,15,22],hang:22,has:[7,11,15,16],have:[0,10,11,13,15,16,21,22],healthi:11,hello:[2,13],help:[0,2,7,11,13,15,16],here:[2,7,11,13,15,22],heurist:11,high:11,hold:16,hollow:22,hope:[7,13],hour:15,how:11,html:10,http:[10,13],ideal:[7,11,22],ident:13,identifi:[10,15,16],ids:[13,15],impact:13,imper:13,implement:[7,13,15,22],impli:[11,13],improv:[7,11,13],includ:[0,15],inconsequenti:13,index:[0,21],indexerror:[15,21],infer:[15,22],info:[13,21],inform:[11,13,15,18],inner:22,input:[7,10,11,13,15,21,22],input_:[7,10,11,13,21,22],insert:[7,13,19],instal:2,instanc:[7,11,13,15,16,19,21],instanti:[10,13,15],instead:[6,13,21],intend:15,intent:[0,1,10,11,14,22],intent_detection_slot_fil:10,intent_nam:10,intent_vot:[8,9],interact:[0,7,22],interfac:13,intermedi:11,interv:[3,15],invoc:2,invok:13,ipython:21,irrespect:10,is_each_el:13,is_list:13,is_list_of_str:13,is_str:13,is_uniq_date_from_valu:15,is_uniq_day_from_valu:15,is_unsqueezed_utter:13,is_utter:13,isn:[10,13,22],iso3166:13,iso:[13,15],isol:7,issu:[13,15],item:10,iter:22,its:[7,10,11,13,15,16],join:[7,13],json:[15,16,19,22],judg:22,juli:15,just:[7,13],keep:7,kei:[7,13,15,19],key_error:21,keyerror:[15,21],know:[13,22],known:15,kolkata:13,kwarg:21,lambda:[10,11,13,21],languag:[13,21,22],largest:22,last:[15,21],latent:[3,10,15],latitud:15,lead:[11,21],learn:[0,11,22],leav:13,len:11,let:[0,10,11],level:[21,22],lib:13,librari:0,light:22,like:[7,10,11,13,14,15],line:[2,13],link:2,lint:2,list:[10,11,13,15,16,19,21,22],littl:22,load:[7,22],load_corpu:7,load_model:22,local:13,locat:[2,15],location_ent:[1,14],locationent:[10,15],log:[11,21,22],logger:[1,23],logic:21,longitud:15,look:[10,11,13,22],machin:[0,22],made:[0,7,11],mai:[10,13,22],main:2,make:[0,2,13,15,21,22],manag:22,mani:[11,22],manner:15,map:10,mar:21,mark:13,mastercard:13,match:[10,13,15,21],mayb:16,maybe_utter:13,mean:[11,13,14,16],meant:15,medium:22,mention:15,merg:13,merge_asr_output:[0,1,12],merge_asr_output_plugin:[7,13],met:[7,11],meta:15,method:[7,10,13,15,21,22],metric:2,minim:0,minut:15,mismatch:21,miss:[2,13,21],mock:[11,22],model:[2,10,11,13,22],modif:[7,15,16],modifi:[11,16,22],modindex:[],modul:[0,23],mondai:15,month:15,more:[10,11,13,15,22],morn:15,most:[13,21],multipl:[11,13,16],must:[2,7,21],mutat:[7,10,11,13,15,22],naiv:11,name:[2,3,7,10,11,13,15,16,19,21,22],namespac:2,navig:21,neatli:22,necessari:15,need:[10,11,13,15,21,22],neg:[11,15],neither:21,nest:21,new_project:2,night:15,nlp:13,nlpprogress:10,nois:13,non:13,none:[2,7,10,11,13,15,16,21,22],nonetyp:2,normal:[10,11,13,15],normalize_utter:[1,12],note:13,noth:[11,15],notic:[10,11,13],notimplementederror:22,now:11,number:[10,11,13,14,15,22],number_ent:10,number_slot:10,numer:[13,15],numerical_ent:[1,14],numericalent:[10,15],obj:[13,21],obj_typ:21,object:[3,7,13,15,16,19,21,22],observ:11,obtain:[11,15],occurr:11,oct:15,octob:15,offer:[2,7,22],onc:[7,10,13],one:[10,11,13,14,15],ones:22,onli:[10,11,13,15,21],open:[7,15],oper:[13,15],opinion:0,option:[2,7,10,11,13,15,16,22],organ:2,origin:[3,10,14,15],other:[0,10,11,15,22],out:[10,11,13,15,16,21],output:[7,10,11,13,22],over:[11,22],overal:[11,13],overrid:[15,22],overridden:[15,22],owing:13,own:15,packag:[0,23],page:[],paint:11,param:21,paramet:[2,10,11,13,15,16,21,22],park:15,pars:[13,15,21],parser:[0,1,10,13,15,16,23],part:[13,15],parti:7,partial:13,particip:14,pass:[10,11,13,15,21,22],passeng:14,path:[7,21,22],pattern:13,peopl:[7,10,13,15],people_ent:[1,10,14],people_entity_prop:3,peopleent:[10,15],per:[7,10,13],percentag:11,perform:13,pertain:10,pick:11,pictur:11,pinpoint:15,pip:0,pipe:22,pipelin:[7,22],place:[7,11,13,22],plain:11,planet:21,pleas:6,plugin:[0,1,10,11,13,14,15,16,22,23],pluginfn:[7,10,11,15,16,17,22],poetri:2,point:[2,7,11],poor:11,popular:0,portabl:[7,22],posit:[13,15],possibl:[15,16,21],post:[7,22],post_init:15,postprocess:[0,1,15,16,22,23],postprocessor:[0,3,10,11,15,16,22],pprint:10,practic:10,pre:[7,10,17,22],precis:13,predict:[11,22],prefer:[16,21],preprocess:[0,1,22,23],preprocessor:[0,3,10,11,13,22],present:10,preset:10,prevent:[13,15],previou:15,privat:13,problem:[0,13],procedur:22,process:[7,13,22],processor:22,processor_typ:22,produc:[11,13],product:[11,15,16],progress:[0,14,15,16],project:[1,3,14,21,22,23],prop:13,properti:[13,15,21],property_:15,proport:11,provid:[3,7,10,11,13,15,17,18,20,21],proxi:22,purpos:15,put:22,python:21,pytz:13,quarter:15,rais:[10,11,13,15,21,22],rang:[3,10,15,21],rank:11,reach:13,read:[7,13],readi:[0,11],recal:13,receiv:[11,22],recent:21,recurs:21,reduc:[11,21],refer:[13,15],relai:22,relat:[10,13],relationship:[10,14],remain:11,remov:[16,19],replac:15,report:10,repres:[10,13],represent:[3,11,15],requir:[7,13,14,22],reserv:14,reset:22,reshap:15,resid:13,resort:11,respect:[13,14,15],respons:13,restrict:[7,21,22],result:22,review:0,root:2,round:14,rtype:[15,21],rule:[10,16],rule_slot_fil:[8,9],rule_str:10,rulebasedslotfillerplugin:[0,7,10,16,22],ruleslotfilerplugin:7,run:[7,10,11,13,21,22],runtim:7,safe:[7,11,15],safe_load:10,safeguard:22,safest:11,sai:[11,15,22],said:15,same:[7,16],saturdai:15,sauc:[],sauci:22,scaffold:[0,2],schema:10,score:[10,11,15,16],screen:2,search:13,second:15,section:[13,14,15],see:22,self:[7,15],semant:13,sentenc:[13,14,15],sentence2vecplugin:7,separ:[7,13],server:13,servic:13,session:0,set:[7,10,11,13,14,15,16,21],set_entity_typ:15,set_valu:15,shall:10,share:16,shift:22,ship:[7,13],should:[10,11,13,15,16,22],show:2,sic:22,signal:[0,1,3,11,14],signatur:[10,22],signific:[10,13,14],similar:[11,13,22],simpl:[0,2,7,13,22],simpli:13,simul:11,sinc:[6,7,11,13,15],singl:[10,11,13,16],situat:11,size:11,skip:15,skip_entity_attr:15,slot:[0,1,10,11,14,16,22],slot_fil:[0,8,9],slot_nam:[3,10,15],slot_rul:10,slot_typ:16,slow:13,slu:[0,11,14,22],smallest:15,solut:[0,7],some:[7,11,13,15,22],somewher:13,sort:22,sourc:[2,3,7,10,11,13,15,16,19,21,22],sparingli:21,speaker:21,special:16,specif:[13,15,21],specifi:[2,7,13],speech:0,splitlin:7,stack:0,stage:7,stall:13,standard:13,start:[2,3,10,13,15],state:[11,13],statist:22,store:15,str:[2,7,10,11,13,15,16,19,21,22],strategi:13,strength:[3,11],string:[11,13,15],strong:11,stronger:22,structur:[1,7,13,15],sub:[0,22],subclass:[13,15,22],submodul:[1,4,5,8,9,12,14,23],subpackag:23,sugar:[13,15,21],summar:7,sundai:15,supplier:22,support:[2,13,15,16,22],suppos:[15,22],sure:13,syntact:13,syntat:21,synthet:10,system:[10,13],tailor:7,take:[11,22],task:[13,22],tell:[10,11,14,15],templat:[0,2],tend:13,termin:13,text:[0,1,4,8,12,16],than:[10,11],thei:[13,15,22],them:[7,10,13,21],therefor:[7,15],thi:[2,7,10,11,13,14,15,16,18,19,21,22],think:22,third:[7,10],those:[13,15,21,22],though:13,threshold:11,through:[10,13,15,22],throughout:[7,21],throughtout:3,thud:22,ticket:14,till:15,time:[10,13,14,15,21],time_ent:[1,14],time_entity_prop:3,time_interval_ent:[1,14],time_slot:10,timeent:[10,15],timeinterv:13,timeintervalent:15,timeout:13,timestamp:15,timezon:13,todai:15,togeth:15,token:[10,11,14,15],tomorrow:15,tonight:15,top:11,total:11,traceback:21,transcript:[11,13],transform:[0,2,13],travel:14,travers:21,traverse_dict:21,tree:11,trial:11,trip:14,triplet:15,tupl:[10,11,21],two:[10,11,15,21,22],type:[0,1,2,3,10,11,13,21,22,23],type_:13,typeerror:[10,11,13,21,22],umm:13,unawar:7,under:[11,13],undergo:21,understand:16,union:[13,21],uniqu:[11,13,15],unit:[3,10,15],unk:11,unless:10,unsaf:[11,15],unset:13,updat:[7,10,15,16,21,22],update_int:11,update_workflow:13,updateworkflowstringfn:[13,17],upon:14,url:13,usag:[2,7],use:[0,2,6,7,10,13,14,22],used:[3,13,15,21,22],useful:[7,21],user:[2,15],uses:2,using:[0,2,11,13,15,16,21,22],usual:7,util:[0,1,2,10,11,15,16,23],utter:[0,1,13,14,15],valid:[13,15],validate_typ:21,valu:[3,7,10,11,13,15,16,19,21,22],variant:15,variou:[7,13],vector:13,veri:[11,13,22],verifi:15,vernacular:[2,13],version:[2,6,22],vertic:22,via:[7,21],vote:[0,8,9],vote_plugin:11,vote_sign:11,voteintentplugin:11,voteplugin:[0,7,11,13,22],wai:[7,11,14,21],want:[13,15,16,22],warn:21,weak:11,week:15,weekdai:15,weight:11,well:[13,15,22],went:15,were:[13,15,16,22],when:13,where:[2,11,13,15,16,22],which:[11,13,15,16,22],whole:15,why:22,win:11,wish:15,within:[13,14,15,16,19,21,22],without:[21,22],won:[7,22],words2num_plugin:7,work:[13,14,22],workflow:[0,1,7,10,11,13,23],workflow_public_properti:3,world:[2,13],worri:22,worst:11,would:[13,14,22],wrap:21,wrapper:[],write:[0,7],written:7,yaml:10,year:15,yep:11,yes:[11,22],yesterdai:15,yet:11,yield:11,you:[0,10,13,14,22],your:[0,22],your_project_nam:0},titles:["Dialogy","dialogy package","dialogy.cli package","dialogy.constants package","dialogy.parser package","dialogy.parser.text package","dialogy.parser.text.entity package","dialogy.plugin package","dialogy.postprocess package","dialogy.postprocess.text package","dialogy.postprocess.text.slot_filler package","dialogy.postprocess.text.voting package","dialogy.preprocess package","dialogy.preprocess.text package","dialogy.types package","dialogy.types.entity package","dialogy.types.intent package","dialogy.types.plugin package","dialogy.types.signal package","dialogy.types.slots package","dialogy.types.utterances package","dialogy.utils package","dialogy.workflow package","dialogy"],titleterms:{advantag:22,all:[],anyon:[],base_ent:15,cli:2,constant:3,content:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],dialogi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],document:[],duckling_pars:6,duckling_plugin:13,duration_ent:15,entiti:[6,15],faq:0,good:[],indic:[],instal:0,intent:16,intent_vot:11,location_ent:15,logger:21,merge_asr_output:13,modul:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],need:[],normalize_utter:13,numerical_ent:15,packag:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22],parser:[4,5,6],people_ent:15,plugin:[7,17],postprocess:[8,9,10,11],preprocess:[12,13],project:[0,2],rule_slot_fil:10,sauc:[],section:0,signal:18,slot:19,slot_fil:10,special:[],start:0,structur:22,submodul:[2,6,7,10,11,13,15,18,21,22],subpackag:[1,4,5,8,9,12,14],tabl:[],test:0,text:[5,6,9,10,11,13],time_ent:15,time_interval_ent:15,type:[14,15,16,17,18,19,20],util:21,utter:20,vote:11,welcom:[],where:[],why:[],workflow:22,would:[]}})
\ No newline at end of file
+Search.setIndex({docnames:["index","source/dialogy","source/dialogy.cli","source/dialogy.constants","source/dialogy.parser","source/dialogy.parser.text","source/dialogy.parser.text.entity","source/dialogy.plugin","source/dialogy.postprocess","source/dialogy.postprocess.text","source/dialogy.postprocess.text.slot_filler","source/dialogy.postprocess.text.voting","source/dialogy.preprocess","source/dialogy.preprocess.text","source/dialogy.preprocess.text.list_entity_plugin","source/dialogy.types","source/dialogy.types.entity","source/dialogy.types.intent","source/dialogy.types.plugin","source/dialogy.types.signal","source/dialogy.types.slots","source/dialogy.types.utterances","source/dialogy.utils","source/dialogy.workflow","source/modules"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":2,"sphinx.domains.rst":2,"sphinx.domains.std":2,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","source/dialogy.rst","source/dialogy.cli.rst","source/dialogy.constants.rst","source/dialogy.parser.rst","source/dialogy.parser.text.rst","source/dialogy.parser.text.entity.rst","source/dialogy.plugin.rst","source/dialogy.postprocess.rst","source/dialogy.postprocess.text.rst","source/dialogy.postprocess.text.slot_filler.rst","source/dialogy.postprocess.text.voting.rst","source/dialogy.preprocess.rst","source/dialogy.preprocess.text.rst","source/dialogy.preprocess.text.list_entity_plugin.rst","source/dialogy.types.rst","source/dialogy.types.entity.rst","source/dialogy.types.intent.rst","source/dialogy.types.plugin.rst","source/dialogy.types.signal.rst","source/dialogy.types.slots.rst","source/dialogy.types.utterances.rst","source/dialogy.utils.rst","source/dialogy.workflow.rst","source/modules.rst"],objects:{"":{dialogy:[1,0,0,"-"]},"dialogy.cli":{main:[2,1,1,""],new_project:[2,1,1,""],project:[2,0,0,"-"]},"dialogy.cli.project":{canonicalize_project_name:[2,1,1,""]},"dialogy.constants":{EntityKeys:[3,2,1,""],SIGNAL:[3,2,1,""]},"dialogy.constants.EntityKeys":{BODY:[3,3,1,""],DIM:[3,3,1,""],DURATION:[3,3,1,""],END:[3,3,1,""],FROM:[3,3,1,""],GRAIN:[3,3,1,""],INTERVAL:[3,3,1,""],LATENT:[3,3,1,""],ORIGIN:[3,3,1,""],RANGE:[3,3,1,""],SLOT_NAMES:[3,3,1,""],START:[3,3,1,""],TO:[3,3,1,""],TYPE:[3,3,1,""],UNIT:[3,3,1,""],VALUE:[3,3,1,""],VALUES:[3,3,1,""]},"dialogy.constants.SIGNAL":{NAME:[3,3,1,""],REPRESENTATION:[3,3,1,""],STRENGTH:[3,3,1,""]},"dialogy.parser":{text:[5,0,0,"-"]},"dialogy.parser.text":{entity:[6,0,0,"-"]},"dialogy.parser.text.entity":{duckling_parser:[6,0,0,"-"]},"dialogy.plugin":{plugin:[7,0,0,"-"]},"dialogy.plugin.plugin":{Plugin:[7,2,1,""]},"dialogy.postprocess":{text:[9,0,0,"-"]},"dialogy.postprocess.text":{slot_filler:[10,0,0,"-"],voting:[11,0,0,"-"]},"dialogy.postprocess.text.slot_filler":{rule_slot_filler:[10,0,0,"-"]},"dialogy.postprocess.text.slot_filler.rule_slot_filler":{RuleBasedSlotFillerPlugin:[10,2,1,""]},"dialogy.postprocess.text.slot_filler.rule_slot_filler.RuleBasedSlotFillerPlugin":{plugin:[10,4,1,""]},"dialogy.postprocess.text.voting":{intent_voting:[11,0,0,"-"]},"dialogy.postprocess.text.voting.intent_voting":{VotePlugin:[11,2,1,""],adjust_signal_strength:[11,1,1,""]},"dialogy.postprocess.text.voting.intent_voting.VotePlugin":{plugin:[11,4,1,""],vote_signal:[11,4,1,""]},"dialogy.preprocess":{text:[13,0,0,"-"]},"dialogy.preprocess.text":{duckling_plugin:[13,0,0,"-"],merge_asr_output:[13,0,0,"-"],normalize_utterance:[13,0,0,"-"]},"dialogy.preprocess.text.duckling_plugin":{DucklingPlugin:[13,2,1,""]},"dialogy.preprocess.text.duckling_plugin.DucklingPlugin":{plugin:[13,4,1,""]},"dialogy.preprocess.text.merge_asr_output":{merge_asr_output:[13,1,1,""],merge_asr_output_plugin:[13,1,1,""]},"dialogy.preprocess.text.normalize_utterance":{dict_get:[13,1,1,""],is_each_element:[13,1,1,""],is_list:[13,1,1,""],is_list_of_string:[13,1,1,""],is_string:[13,1,1,""],is_unsqueezed_utterance:[13,1,1,""],is_utterance:[13,1,1,""],normalize:[13,1,1,""]},"dialogy.types":{entity:[16,0,0,"-"],intent:[17,0,0,"-"],plugin:[18,0,0,"-"],signal:[19,0,0,"-"],slots:[20,0,0,"-"],utterances:[21,0,0,"-"]},"dialogy.types.entity":{base_entity:[16,0,0,"-"],duration_entity:[16,0,0,"-"],location_entity:[16,0,0,"-"],numerical_entity:[16,0,0,"-"],people_entity:[16,0,0,"-"],time_entity:[16,0,0,"-"],time_interval_entity:[16,0,0,"-"]},"dialogy.types.entity.base_entity":{BaseEntity:[16,2,1,""],entity_synthesis:[16,1,1,""]},"dialogy.types.entity.base_entity.BaseEntity":{add_parser:[16,4,1,""],copy:[16,4,1,""],entity_type:[16,3,1,""],from_dict:[16,4,1,""],get_value:[16,4,1,""],json:[16,4,1,""],reshape:[16,4,1,""],set_value:[16,4,1,""],validate:[16,4,1,""],value:[16,3,1,""]},"dialogy.types.entity.duration_entity":{DurationEntity:[16,2,1,""]},"dialogy.types.entity.duration_entity.DurationEntity":{entity_type:[16,3,1,""],value:[16,3,1,""]},"dialogy.types.entity.location_entity":{LocationEntity:[16,2,1,""]},"dialogy.types.entity.location_entity.LocationEntity":{entity_type:[16,3,1,""],value:[16,3,1,""]},"dialogy.types.entity.numerical_entity":{NumericalEntity:[16,2,1,""]},"dialogy.types.entity.numerical_entity.NumericalEntity":{entity_type:[16,3,1,""],value:[16,3,1,""]},"dialogy.types.entity.people_entity":{PeopleEntity:[16,2,1,""]},"dialogy.types.entity.people_entity.PeopleEntity":{entity_type:[16,3,1,""],value:[16,3,1,""]},"dialogy.types.entity.time_entity":{TimeEntity:[16,2,1,""]},"dialogy.types.entity.time_entity.TimeEntity":{dim:[16,3,1,""],entity_type:[16,3,1,""],get_date_value:[16,4,1,""],is_uniq_date_from_values:[16,4,1,""],is_uniq_day_from_values:[16,4,1,""],post_init:[16,4,1,""],reshape:[16,4,1,""],set_entity_type:[16,4,1,""],value:[16,3,1,""]},"dialogy.types.entity.time_interval_entity":{TimeIntervalEntity:[16,2,1,""]},"dialogy.types.entity.time_interval_entity.TimeIntervalEntity":{dim:[16,3,1,""],entity_type:[16,3,1,""],get_date_value:[16,4,1,""],origin:[16,3,1,""],reshape:[16,4,1,""],set_value:[16,4,1,""],value:[16,3,1,""]},"dialogy.types.intent":{Intent:[17,2,1,""]},"dialogy.types.intent.Intent":{add_parser:[17,4,1,""],apply:[17,4,1,""],cleanup:[17,4,1,""],fill_slot:[17,4,1,""],json:[17,4,1,""]},"dialogy.types.signal":{signal:[19,0,0,"-"]},"dialogy.types.slots":{Slot:[20,2,1,""]},"dialogy.types.slots.Slot":{add:[20,4,1,""],clear:[20,4,1,""],json:[20,4,1,""]},"dialogy.utils":{logger:[22,0,0,"-"],traverse_dict:[22,1,1,""],validate_type:[22,1,1,""]},"dialogy.utils.logger":{change_log_level:[22,1,1,""],debug:[22,1,1,""]},"dialogy.workflow":{workflow:[23,0,0,"-"]},"dialogy.workflow.workflow":{Workflow:[23,2,1,""]},"dialogy.workflow.workflow.Workflow":{flush:[23,4,1,""],inference:[23,4,1,""],load_model:[23,4,1,""],postprocess:[23,4,1,""],preprocess:[23,4,1,""],run:[23,4,1,""],update:[23,4,1,""]},dialogy:{cli:[2,0,0,"-"],constants:[3,0,0,"-"],parser:[4,0,0,"-"],plugin:[7,0,0,"-"],postprocess:[8,0,0,"-"],preprocess:[12,0,0,"-"],types:[15,0,0,"-"],utils:[22,0,0,"-"],workflow:[23,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"],"4":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute","4":"py:method"},terms:{"000":16,"16t16":16,"17t16":16,"1996":16,"19t00":16,"1st":16,"2019":16,"2021":16,"2022":16,"2023":16,"27th":16,"29th":16,"3pm":16,"4pm":16,"556a11057179":22,"5pm":16,"639":13,"6pm":16,"6th":16,"7th":16,"8000":13,"abstract":[7,23],"case":[7,11,13,16,17,23],"class":[0,3,7,10,11,13,16,17,20,22,23],"const":[13,16],"default":[2,11,13,16,23],"export":0,"final":23,"float":[11,13,16,17],"function":[2,7,11,13,16,17,22,23],"import":[0,3,10,11,13,16,17,18,20,21,22],"int":[11,16,17,22],"long":23,"new":[2,16],"return":[2,10,11,13,16,17,20,22,23],"static":7,"true":[10,11,13,16,17,22,23],"try":22,"while":[7,11,16],Its:16,LMs:13,Not:10,One:[22,23],That:13,The:[2,7,11,13,16,17,22,23],There:[13,15,17,22,23],These:[7,13,16,23],Use:[11,16,23],Uses:23,__call__:13,__init__:[2,7,22],__postprocessor:23,__preprocessor:23,__valid:16,_oos_:11,_plugin:7,abl:13,abort:2,about:[11,13,16],accept:0,access:[7,10,11,13,16,18,22,23],across:13,act:15,action:[10,16,17,23],action_slot:10,adapt:13,add:[16,20],add_pars:[16,17],added:16,addit:[7,10],address:[13,16],adjust_signal_strength:11,advanc:23,advantag:1,affect:0,affirm:11,after:[0,16,23],against:23,aggreg:11,aggregate_fn:11,agnost:0,ahead:16,aim:23,air:15,algorithm:11,all:[0,11,13,16,20,22],allow:[10,11,23],alpha2:13,alreadi:[2,15],also:[13,16],altern:[11,13,21],alternative_index:[10,16,17],anaconda3:22,analog:22,ani:[2,7,10,11,13,16,17,20,22,23],anomali:11,anoth:23,anticip:23,anyon:[],anyth:23,apart:23,api:[7,13],appli:[7,13,16,17,22],applic:[0,23],april:16,arbitrari:[13,16,23],arg:[16,22,23],arg_nam:22,argument:[11,13,23],arrang:10,artifact:13,asia:13,ask:13,asr:[11,13],assert:22,assist:[10,13],associ:[10,15,17],assum:[7,23],assumpt:0,attempt:11,attr_nam:[],attribut:[16,17,23],audio:13,avail:[13,16,22],back:22,bad:23,base:[0,3,7,10,11,13,16,17,20,23],base_ent:[1,15,17,20],base_entity_prop:3,baseent:[10,13,16,17,20,23],battri:0,becaus:[13,16,23],been:[16,23],beep:22,befor:[13,23],being:[7,11,16,22],best:[11,13],better:7,between:[10,15,16,23],beyond:11,bit:10,bloat:16,block:23,bodi:[3,10,16,17],boilerpl:0,book:16,bool:[7,10,11,13,16,17,23],boost:11,booster:11,bop:22,both:16,box:7,briefli:22,build:[0,23],built:[7,11],bunch:23,bundl:23,call:[13,16,17,22],callabl:[7,10,11,13,16,17,23],can:[0,7,10,11,13,15,16,17,20,23],candid:11,canonicalize_project_nam:2,care:23,categori:10,caution:[11,13,16],certain:[10,13],challeng:7,chanc:13,chang:[7,16,22,23],change_log_level:22,check:[10,13,16,17,22,23],children:16,choic:[0,23],classifi:[10,11,23],classmethod:16,cleanup:17,clear:20,cli:[0,1,24],cls:16,code:[0,13],collat:23,collect:[0,16],com:[10,13],command:2,common:13,compat:10,compli:16,complianc:16,compon:0,comput:23,concat:13,concaten:[11,13],conceal:16,concept:23,condit:[22,23],conduit:23,confid:11,configur:[10,13,17,22],connect:13,consensu:11,consid:[11,15],consider:[11,23],consist:13,constant:[0,1,24],constitu:11,constraint:23,contain:[10,11,16,17],content:24,context:7,contextu:11,continu:11,conveni:[7,23],convent:7,convers:15,convert:[16,17,20],copi:[2,16],copier:2,core:23,corpu:7,corpus_dir:7,corpus_fil:7,cost:13,could:[11,16,23],count:11,count_peopl:10,counterpart:11,countri:13,coupl:[16,23],cover:[13,16],creat:[0,2,7,10,13,16,17],critic:22,currenc:13,current:[2,10,16,20,23],custom:7,custom_entity_map:13,customplugin:7,cuz:13,dai:16,dampen:11,data:[2,13,16],databas:13,dataset:2,date:[13,15,16],datetim:16,debug:[7,10,11,13,16,17,22,23],debug_log:[],decemb:16,decid:11,decor:22,deep:16,deepli:22,def:[7,11,13],defin:[10,11,13,16,18,23],definit:[13,17,20],demo:[17,23],denot:16,depend:[16,23],depict:11,deploi:13,deprec:6,describ:22,design:[7,10,11,23],desir:23,destin:15,destination_path:2,detail:[0,13,17],develop:13,dialog:10,dict:[10,13,16,17,20,22],dict_:16,dict_get:13,dict_travers:22,dictionari:[16,17,20,22],did:[11,16],didn:16,differ:[7,11,13,16,17],dim:[3,10,16],dimens:[13,16],dir:2,directli:[7,23],directori:2,dissimilar:13,document:13,doe:10,doesn:[13,16,22],don:[7,22],done:13,down:13,downstream:13,drop:23,duckl:[13,16],duckling_ent:13,duckling_pars:[4,5,13],duckling_plugin:[1,12],duckling_time_ent:16,ducklingpars:6,ducklingplug:6,ducklingplugin:[0,6,7,13,23],due:22,durat:[3,13,16],duration_ent:[1,15],durationent:16,dynam:7,each:[10,11,13,16],eas:11,easi:0,either:[15,16,22],elect:11,element:[10,13,16,22,23],els:[11,13,16],emit:11,en_gb:13,en_in:13,en_u:13,encourag:7,end:[3,7,10,13,16],enforc:23,english:10,entiti:[0,1,4,5,10,13,15,17,20,22,23],entity_synthesi:16,entity_typ:[10,16],entitykei:3,env:22,error:22,especi:13,etc:[13,16,23],evalu:11,even:[7,10],everi:23,everyth:13,evid:11,exampl:[2,7,10,13,15,16],except:22,exclus:22,execut:[22,23],exhibit:[2,23],exist:[2,7,13,22],expect:[7,10,11,13,15,16,23],experi:13,explicit:16,explicitli:16,explor:17,expos:[2,7,13],express:13,extend:7,extern:7,extra:13,extract:[10,13,20],facilit:13,fact:13,fail:[11,13],fairli:23,fallback:11,fallback_int:11,fals:[7,10,11,13,16,17,23],faq:10,featur:7,few:[0,7,10,15,23],field:13,file:2,file_path:7,fill:[10,15,17,20,23],fill_multipl:[10,17],fill_slot:17,filler:10,filter:[11,16,23],find:11,fine:13,first:22,fix:16,flag:[],flatten:13,flavor:16,flexibl:23,flight:16,flush:23,focu:0,follow:23,foreign:23,forest:11,fork:13,form:13,format:[10,13,16],found:10,framework:0,free:[7,13],frequenc:11,from:[2,3,7,10,11,13,16,17,22,23],from_dict:16,func:[],gap:11,gener:[2,11,15],genindex:[],geographi:13,geopointent:16,get:[0,10,13,16,23],get_date_valu:16,get_valu:16,getworkflowutterancefn:[13,18],github:13,given:[13,16,22],goe:11,good:[],grain:[3,16],graviti:23,great:13,ground:23,group:11,guid:13,had:11,hamper:7,handl:[7,10,11,13,16,23],hang:23,has:[7,11,16,17],have:[0,10,11,13,16,17,22,23],healthi:11,hello:[2,13],help:[0,2,7,11,13,16,17],here:[2,7,11,13,16,23],heurist:11,high:11,hold:17,hollow:23,hope:[7,13],hour:16,how:11,html:10,http:[10,13],ideal:[7,11,23],ident:13,identifi:[10,16,17],ids:[13,16],impact:13,imper:13,implement:[7,13,16,23],impli:[11,13],improv:[7,11,13],includ:[0,16],inconsequenti:13,index:[0,22],indexerror:[16,22],infer:[16,23],info:[13,22],inform:[11,13,16,19],inner:23,input:[7,10,11,13,16,22,23],input_:[7,10,11,13,22,23],insert:[7,13,20],instal:2,instanc:[7,11,13,16,17,20,22],instanti:[10,13,16],instead:[6,13,22],intend:16,intent:[0,1,10,11,15,23],intent_detection_slot_fil:10,intent_nam:10,intent_vot:[8,9],interact:[0,7,23],interfac:13,intermedi:11,interv:[3,16],invoc:2,invok:13,ipython:22,irrespect:10,is_each_el:13,is_list:13,is_list_of_str:13,is_str:13,is_uniq_date_from_valu:16,is_uniq_day_from_valu:16,is_unsqueezed_utter:13,is_utter:13,isn:[10,13,23],iso3166:13,iso:[13,16],isol:7,issu:[13,16],item:10,iter:23,its:[7,10,11,13,16,17],join:[7,13],json:[16,17,20,23],judg:23,juli:16,just:[7,13],keep:7,kei:[7,13,16,20],key_error:22,keyerror:[16,22],know:[13,23],known:16,kolkata:13,kwarg:22,lambda:[10,11,13,22],languag:[13,22,23],largest:23,last:[16,22],latent:[3,10,16],latitud:16,lead:[11,22],learn:[0,11,23],leav:13,len:11,let:[0,10,11],level:[22,23],lib:[13,22],librari:0,light:23,like:[7,10,11,13,15,16],line:[2,13],link:2,lint:2,list:[10,11,13,16,17,20,22,23],list_entity_plugin:[0,12,13],littl:23,load:[7,23],load_corpu:7,load_model:23,local:13,locat:[2,16],location_ent:[1,15],locationent:[10,16],log:[11,22,23],logger:[1,24],logic:22,longitud:16,look:[10,11,13,23],machin:[0,23],made:[0,7,11],mai:[10,13,23],main:2,make:[0,2,13,16,22,23],manag:23,mani:[11,23],manner:16,map:10,mar:22,mark:13,mastercard:13,match:[10,13,16,22],mayb:17,maybe_utter:13,mean:[11,13,15,17],meant:16,medium:23,mention:16,merg:13,merge_asr_output:[0,1,12],merge_asr_output_plugin:[7,13],met:[7,11],meta:16,method:[7,10,13,16,22,23],metric:2,minim:0,minut:16,mismatch:22,miss:[2,13,22],mock:[11,23],model:[2,10,11,13,23],modif:[7,16,17],modifi:[11,17,23],modindex:[],modul:[0,24],mondai:16,month:16,more:[10,11,13,16,23],morn:16,most:[13,22],multipl:[11,13,17],must:[2,7,22],mutat:[7,10,11,13,16,23],naiv:11,name:[2,3,7,10,11,13,16,17,20,22,23],namespac:2,navig:22,neatli:23,necessari:16,need:[10,11,13,16,22,23],neg:[11,16],neither:22,nest:22,new_project:2,night:16,nlp:13,nlpprogress:10,nois:13,non:13,none:[2,7,10,11,13,16,17,22,23],nonetyp:2,normal:[10,11,13,16],normalize_utter:[1,12],note:13,noth:[11,16],notic:[10,11,13],notimplementederror:23,now:11,number:[10,11,13,15,16,23],number_ent:10,number_slot:10,numer:[13,16],numerical_ent:[1,15],numericalent:[10,16],obj:[13,22],obj_typ:22,object:[3,7,13,16,17,20,22,23],observ:11,obtain:[11,16],occurr:11,oct:16,octob:16,offer:[7,23],onc:[7,10,13],one:[10,11,13,15,16],ones:23,onli:[10,11,13,16,22],open:[7,16],oper:[13,16],opinion:0,option:[2,7,10,11,13,16,17,23],organ:2,origin:[3,10,15,16],other:[0,10,11,16,23],out:[10,11,13,16,17,22],output:[7,10,11,13,23],over:[11,23],overal:[11,13],overrid:[16,23],overridden:[16,23],owing:13,own:16,packag:[0,24],page:[],paint:11,param:22,paramet:[2,10,11,13,16,17,22,23],park:16,pars:[13,16,22],parser:[0,1,10,13,16,17,24],part:[13,16],parti:7,partial:13,particip:15,pass:[10,11,13,16,22,23],passeng:15,path:[7,22,23],pattern:13,peopl:[7,10,13,16],people_ent:[1,10,15],people_entity_prop:3,peopleent:[10,16],per:[7,10,13],percentag:11,perform:13,pertain:10,pick:11,pictur:11,pinpoint:16,pip:0,pipe:23,pipelin:[7,23],place:[7,11,13,23],plain:11,planet:22,pleas:6,plugin:[0,1,10,11,13,15,16,17,23,24],pluginfn:[7,10,11,16,17,18,23],poetri:2,point:[2,7,11],poor:11,popular:0,portabl:[7,23],posit:[13,16],possibl:[16,17,22],post:[7,23],post_init:16,postprocess:[0,1,16,17,23,24],postprocessor:[0,3,10,11,16,17,23],pprint:10,practic:10,pre:[7,10,18,23],precis:13,predict:[11,23],prefer:[17,22],preprocess:[0,1,23,24],preprocessor:[0,3,10,11,13,23],present:10,preset:10,prevent:[13,16],previou:16,privat:13,problem:[0,13],procedur:23,process:[7,13,23],processor:23,processor_typ:23,produc:[11,13],product:[11,16,17],progress:[0,15,16,17],project:[1,3,15,22,23,24],prop:13,properti:[13,16,22],property_:16,proport:11,provid:[3,7,10,11,13,16,18,19,21,22],proxi:23,purpos:16,put:23,py38:22,python3:22,python:[],pytz:13,quarter:16,rais:[10,11,13,16,22,23],rang:[3,10,16,22],rank:11,reach:13,read:[7,13],readi:[0,11],recal:13,receiv:[11,23],recent:22,recurs:22,reduc:[11,22],refer:[13,16],relai:23,relat:[10,13],relationship:[10,15],remain:11,remov:[17,20],replac:16,report:10,repres:[10,13],represent:[3,11,16],requir:[7,13,15,23],reserv:15,reset:23,reshap:16,resid:13,resort:11,respect:[13,15,16],respons:13,restrict:[7,22,23],result:23,review:0,root:2,round:15,rtype:[16,22],rule:[10,17],rule_slot_fil:[8,9],rule_str:10,rulebasedslotfillerplugin:[0,7,10,17,23],ruleslotfilerplugin:7,run:[7,10,11,13,22,23],runtim:7,safe:[7,11,16],safe_load:10,safeguard:23,safest:11,sai:[11,16,23],said:16,same:[7,17],saturdai:16,sauc:[],sauci:23,scaffold:[0,2],schema:10,score:[10,11,16,17],screen:2,search:13,second:16,section:[13,15,16],see:23,self:[7,16],semant:13,sentenc:[13,15,16],sentence2vecplugin:7,separ:[7,13],server:13,servic:13,session:0,set:[7,10,11,13,15,16,17,22],set_entity_typ:16,set_valu:16,shall:10,share:17,shift:23,ship:[7,13],should:[10,11,13,16,17,23],show:2,sic:23,signal:[0,1,3,11,15],signatur:[10,23],signific:[10,13,15],similar:[11,13,23],simpl:[0,2,7,13,23],simpli:13,simul:11,sinc:[6,7,11,13,16],singl:[10,11,13,17],site:22,situat:11,size:11,skip:16,skip_entity_attr:16,slot:[0,1,10,11,15,17,23],slot_fil:[0,8,9],slot_nam:[3,10,16],slot_rul:10,slot_typ:17,slow:13,slu:[0,11,15,23],smallest:16,solut:[0,7],some:[7,11,13,16,23],somewher:13,sort:23,sourc:[2,3,7,10,11,13,16,17,20,22,23],sparingli:22,speaker:22,special:17,specif:[13,16,22],specifi:[2,7,13],speech:0,splitlin:7,stack:0,stage:7,stall:13,standard:13,start:[2,3,10,13,16],state:[11,13],statist:23,store:16,str:[2,7,10,11,13,16,17,20,22,23],strategi:13,strength:[3,11],string:[11,13,16],strong:11,stronger:23,structur:[1,7,13,16],sub:[0,23],subclass:[13,16,23],submodul:[1,4,5,8,9,12,15,24],subpackag:24,sugar:[13,16,22],summar:7,sundai:16,supplier:23,support:[2,13,16,17,23],suppos:[16,23],sure:13,syntact:13,syntat:22,synthet:10,system:[10,13],tailor:7,take:[11,23],task:[13,23],tell:[10,11,15,16],templat:[0,2],tend:13,termin:13,text:[0,1,4,8,12,17],than:[10,11],thei:[13,16,23],them:[7,10,13,22],therefor:[7,16],thi:[2,7,10,11,13,15,16,17,19,20,22,23],think:23,third:[7,10],those:[13,16,22,23],though:13,threshold:11,through:[10,13,16,23],throughout:[7,22],throughtout:3,thud:23,ticket:15,till:16,time:[10,13,15,16,22],time_ent:[1,15],time_entity_prop:3,time_interval_ent:[1,15],time_slot:10,timeent:[10,16],timeinterv:13,timeintervalent:16,timeout:13,timestamp:16,timezon:13,todai:16,togeth:16,token:[10,11,15,16],tomorrow:16,tonight:16,top:11,total:11,traceback:22,transcript:[11,13],transform:[0,2,13],travel:15,travers:22,traverse_dict:22,tree:11,trial:11,trip:15,triplet:16,tupl:[2,10,11,22],two:[10,11,16,22,23],type:[0,1,2,3,10,11,13,22,23,24],type_:13,typeerror:[10,11,13,22,23],umm:13,unawar:7,under:[11,13],undergo:22,understand:17,union:[13,22],uniqu:[11,13,16],unit:[3,10,16],unk:11,unless:10,unsaf:[11,16],unset:13,updat:[7,10,16,17,22,23],update_int:11,update_workflow:13,updateworkflowstringfn:[13,18],upon:15,url:13,usag:[2,7],use:[0,2,6,7,10,13,15,23],used:[3,13,16,22,23],useful:[7,22],user:[2,16],uses:2,using:[0,2,11,13,16,17,22,23],usual:7,util:[0,1,2,10,11,16,17,24],utter:[0,1,13,15,16],valid:[13,16],validate_typ:22,valu:[3,7,10,11,13,16,17,20,22,23],variant:16,variou:[7,13],vector:13,veri:[11,13,23],verifi:16,vernacular:[2,13],version:[2,6,23],vertic:23,via:[7,22],vote:[0,8,9],vote_plugin:11,vote_sign:11,voteintentplugin:11,voteplugin:[0,7,11,13,23],wai:[7,11,15,22],want:[13,16,17,23],warn:22,weak:11,week:16,weekdai:16,weight:11,well:[13,16,23],went:16,were:[13,16,17,23],when:13,where:[2,11,13,16,17,23],which:[11,13,16,17,23],whole:16,why:23,win:11,wish:16,within:[13,15,16,17,20,22,23],without:[22,23],won:[7,23],words2num_plugin:7,work:[13,15,23],workflow:[0,1,7,10,11,13,24],workflow_public_properti:3,world:[2,13],worri:23,worst:11,would:[13,15,23],wrap:22,wrapper:[],write:[0,7],written:7,yaml:10,year:16,yep:11,yes:[11,23],yesterdai:16,yet:11,yield:11,you:[0,10,13,15,23],your:[0,23],your_project_nam:0},titles:["Dialogy","dialogy package","dialogy.cli package","dialogy.constants package","dialogy.parser package","dialogy.parser.text package","dialogy.parser.text.entity package","dialogy.plugin package","dialogy.postprocess package","dialogy.postprocess.text package","dialogy.postprocess.text.slot_filler package","dialogy.postprocess.text.voting package","dialogy.preprocess package","dialogy.preprocess.text package","dialogy.preprocess.text.list_entity_plugin package","dialogy.types package","dialogy.types.entity package","dialogy.types.intent package","dialogy.types.plugin package","dialogy.types.signal package","dialogy.types.slots package","dialogy.types.utterances package","dialogy.utils package","dialogy.workflow package","dialogy"],titleterms:{advantag:23,all:[],anyon:[],base_ent:16,cli:2,constant:3,content:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],dialogi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24],document:[],duckling_pars:6,duckling_plugin:13,duration_ent:16,entiti:[6,16],faq:0,good:[],indic:[],instal:0,intent:17,intent_vot:11,list_entity_plugin:14,location_ent:16,logger:22,merge_asr_output:13,modul:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],need:[],normalize_utter:13,numerical_ent:16,packag:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23],parser:[4,5,6],people_ent:16,plugin:[7,18],postprocess:[8,9,10,11],preprocess:[12,13,14],project:[0,2],rule_slot_fil:10,sauc:[],section:0,signal:19,slot:20,slot_fil:10,special:[],start:0,structur:23,submodul:[2,6,7,10,11,13,16,19,22,23],subpackag:[1,4,5,8,9,12,13,15],tabl:[],test:0,text:[5,6,9,10,11,13,14],time_ent:16,time_interval_ent:16,type:[15,16,17,18,19,20,21],util:22,utter:21,vote:11,welcom:[],where:[],why:[],workflow:23,would:[]}})
\ No newline at end of file
diff --git a/docs/source/dialogy.cli.html b/docs/source/dialogy.cli.html
index fc973310..653da867 100644
--- a/docs/source/dialogy.cli.html
+++ b/docs/source/dialogy.cli.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -183,17 +190,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 </section>
 <section id="module-dialogy.cli.project">
 <span id="dialogy-cli-project-module"></span><h2>dialogy.cli.project module<a class="headerlink" href="#module-dialogy.cli.project" title="Permalink to this headline">¶</a></h2>
-<p>This module offers utilities to create a new project from a given template.</p>
 <dl class="py function">
-<dt id="dialogy.cli.project.new_project">
-<code class="sig-prename descclassname"><span class="pre">dialogy.cli.project.</span></code><code class="sig-name descname"><span class="pre">new_project</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination_path</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'vernacular-ai'</span></span></em><span class="sig-paren">)</span> → <span class="pre">None</span><a class="reference internal" href="../_modules/dialogy/cli/project.html#new_project"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#dialogy.cli.project.new_project" title="Permalink to this definition">¶</a></dt>
-<dd><p>Create a new project using scaffolding from an existing template.</p>
-<p>This function uses <a class="reference external" href="https://copier.readthedocs.io/en/stable/">copier’s</a> <a class="reference external" href="https://copier.readthedocs.io/en/stable/#quick-usage">copy</a> to use an existing template.</p>
-<p>An example template is <a class="reference external" href="https://github.com/Vernacular-ai/dialogy-template-simple-transformers">here:</a>.</p>
-<dl class="field-list simple">
+<dt id="dialogy.cli.project.canonicalize_project_name">
+<code class="sig-prename descclassname"><span class="pre">dialogy.cli.project.</span></code><code class="sig-name descname"><span class="pre">canonicalize_project_name</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">template</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">Optional</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">]</span></span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span> → <span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">str</span><span class="p"><span class="pre">,</span> </span><span class="pre">str</span><span class="p"><span class="pre">]</span></span><a class="reference internal" href="../_modules/dialogy/cli/project.html#canonicalize_project_name"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#dialogy.cli.project.canonicalize_project_name" title="Permalink to this definition">¶</a></dt>
+<dd><dl class="field-list simple">
 <dt class="field-odd">Parameters</dt>
 <dd class="field-odd"><ul class="simple">
-<li><p><strong>destination_path</strong> (<em>str</em>) – The directory where the scaffolding must be generated, creates a dir if missing but aborts if there are files already in the specified location.</p></li>
 <li><p><strong>template</strong> (<em>str</em>) – Scaffolding will be generated using a copier template project. This is the link to the project.</p></li>
 <li><p><strong>namespace</strong> (<em>str</em><em>, </em><em>optional</em>) – The user or the organization that supports the template, defaults to “vernacular-ai”</p></li>
 </ul>
@@ -213,14 +215,15 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 <div class="highlight-bash notranslate"><div class="table-wrapper"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre>1
 2
 3
-4</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="hll">dialogy create hello-world dialogy-template-simple-transformers
+4</pre></div></td><td class="code"><div class="highlight"><pre><span></span><span class="hll">dialogy create hello-world
 </span><span class="nb">cd</span> hello-world
 poetry install
 make lint
 </pre></div>
 </td></tr></table></div></div>
 <dl class="simple">
-<dt>Usage:</dt><dd><p>__init__.py create &lt;project&gt; &lt;template&gt; [–namespace=&lt;namespace&gt;]</p>
+<dt>Usage:</dt><dd><p>__init__.py create &lt;project&gt; &lt;template&gt; [–namespace=&lt;namespace&gt;]
+__init__.py create &lt;project&gt;</p>
 </dd>
 </dl>
 <p>Options:</p>
@@ -247,6 +250,28 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 <code class="sig-prename descclassname"><span class="pre">dialogy.cli.</span></code><code class="sig-name descname"><span class="pre">main</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span> → <span class="pre">None</span><a class="reference internal" href="../_modules/dialogy/cli.html#main"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#dialogy.cli.main" title="Permalink to this definition">¶</a></dt>
 <dd><p>Create project scaffolding cli.</p>
 </dd></dl>
+<dl class="py function">
+<dt id="dialogy.cli.new_project">
+<code class="sig-prename descclassname"><span class="pre">dialogy.cli.</span></code><code class="sig-name descname"><span class="pre">new_project</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination_path</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">template</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'dialogy-template-simple-transformers'</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">namespace</span></span><span class="p"><span class="pre">:</span></span> <span class="n"><span class="pre">str</span></span> <span class="o"><span class="pre">=</span></span> <span class="default_value"><span class="pre">'vernacular-ai'</span></span></em><span class="sig-paren">)</span> → <span class="pre">None</span><a class="reference internal" href="../_modules/dialogy/cli.html#new_project"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#dialogy.cli.new_project" title="Permalink to this definition">¶</a></dt>
+<dd><p>Create a new project using scaffolding from an existing template.</p>
+<p>This function uses <a class="reference external" href="https://copier.readthedocs.io/en/stable/">copier’s</a> <a class="reference external" href="https://copier.readthedocs.io/en/stable/#quick-usage">copy</a> to use an existing template.</p>
+<p>An example template is <a class="reference external" href="https://github.com/Vernacular-ai/dialogy-template-simple-transformers">here:</a>.</p>
+<dl class="field-list simple">
+<dt class="field-odd">Parameters</dt>
+<dd class="field-odd"><ul class="simple">
+<li><p><strong>destination_path</strong> (<em>str</em>) – The directory where the scaffolding must be generated, creates a dir if missing but aborts if there are files already in the specified location.</p></li>
+<li><p><strong>template</strong> (<em>str</em>) – Scaffolding will be generated using a copier template project. This is the link to the project.</p></li>
+<li><p><strong>namespace</strong> (<em>str</em><em>, </em><em>optional</em>) – The user or the organization that supports the template, defaults to “vernacular-ai”</p></li>
+</ul>
+</dd>
+<dt class="field-even">Returns</dt>
+<dd class="field-even"><p>None</p>
+</dd>
+<dt class="field-odd">Return type</dt>
+<dd class="field-odd"><p>NoneType</p>
+</dd>
+</dl>
+</dd></dl>
 </section>
 </section>
 
diff --git a/docs/source/dialogy.constants.html b/docs/source/dialogy.constants.html
index b5233f25..60159229 100644
--- a/docs/source/dialogy.constants.html
+++ b/docs/source/dialogy.constants.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.html b/docs/source/dialogy.html
index ce3ea52f..641215ec 100644
--- a/docs/source/dialogy.html
+++ b/docs/source/dialogy.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -225,6 +232,7 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
 <li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.html#subpackages">Subpackages</a><ul>
 <li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="dialogy.preprocess.text.html#subpackages">Subpackages</a></li>
 <li class="toctree-l4"><a class="reference internal" href="dialogy.preprocess.text.html#submodules">Submodules</a></li>
 <li class="toctree-l4"><a class="reference internal" href="dialogy.preprocess.text.html#module-dialogy.preprocess.text.duckling_plugin">dialogy.preprocess.text.duckling_plugin module</a></li>
 <li class="toctree-l4"><a class="reference internal" href="dialogy.preprocess.text.html#module-dialogy.preprocess.text.merge_asr_output">dialogy.preprocess.text.merge_asr_output module</a></li>
diff --git a/docs/source/dialogy.parser.html b/docs/source/dialogy.parser.html
index e14ed39e..56efbb8d 100644
--- a/docs/source/dialogy.parser.html
+++ b/docs/source/dialogy.parser.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.parser.text.entity.html b/docs/source/dialogy.parser.text.entity.html
index a0624231..af72f6d9 100644
--- a/docs/source/dialogy.parser.text.entity.html
+++ b/docs/source/dialogy.parser.text.entity.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.parser.text.html b/docs/source/dialogy.parser.text.html
index ba87f50a..3e378e63 100644
--- a/docs/source/dialogy.parser.text.html
+++ b/docs/source/dialogy.parser.text.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.plugin.html b/docs/source/dialogy.plugin.html
index 944a38d3..ae0d1557 100644
--- a/docs/source/dialogy.plugin.html
+++ b/docs/source/dialogy.plugin.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.postprocess.html b/docs/source/dialogy.postprocess.html
index e1f28687..7e9c8fbe 100644
--- a/docs/source/dialogy.postprocess.html
+++ b/docs/source/dialogy.postprocess.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.postprocess.text.html b/docs/source/dialogy.postprocess.text.html
index ab21b5e0..135440ca 100644
--- a/docs/source/dialogy.postprocess.text.html
+++ b/docs/source/dialogy.postprocess.text.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.postprocess.text.slot_filler.html b/docs/source/dialogy.postprocess.text.slot_filler.html
index 6fc0086e..c8d76092 100644
--- a/docs/source/dialogy.postprocess.text.slot_filler.html
+++ b/docs/source/dialogy.postprocess.text.slot_filler.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1 current current-page"><a class="current reference internal" href="#">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.postprocess.text.voting.html b/docs/source/dialogy.postprocess.text.voting.html
index 60423cb6..1a0edfd6 100644
--- a/docs/source/dialogy.postprocess.text.voting.html
+++ b/docs/source/dialogy.postprocess.text.voting.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1 current current-page"><a class="current reference internal" href="#">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.preprocess.html b/docs/source/dialogy.preprocess.html
index a1f99b2f..8bd09b76 100644
--- a/docs/source/dialogy.preprocess.html
+++ b/docs/source/dialogy.preprocess.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">dialogy.preprocess package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -183,6 +190,13 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
 <div class="toctree-wrapper compound">
 <ul>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html#subpackages">Subpackages</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a><ul>
+<li class="toctree-l4"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html#module-contents">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html#submodules">Submodules</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html#module-dialogy.preprocess.text.duckling_plugin">dialogy.preprocess.text.duckling_plugin module</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html#module-dialogy.preprocess.text.merge_asr_output">dialogy.preprocess.text.merge_asr_output module</a></li>
diff --git a/docs/source/dialogy.preprocess.text.html b/docs/source/dialogy.preprocess.text.html
index 7eb77a79..dee42a13 100644
--- a/docs/source/dialogy.preprocess.text.html
+++ b/docs/source/dialogy.preprocess.text.html
@@ -3,7 +3,7 @@
   <head><meta charset="utf-8"/>
     <meta name="viewport" content="width=device-width,initial-scale=1"/>
     <meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
-<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="dialogy.types package" href="dialogy.types.html" /><link rel="prev" title="dialogy.preprocess package" href="dialogy.preprocess.html" />
+<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="dialogy.preprocess.text.list_entity_plugin package" href="dialogy.preprocess.text.list_entity_plugin.html" /><link rel="prev" title="dialogy.preprocess package" href="dialogy.preprocess.html" />
 
     <meta name="generator" content="sphinx-3.5.3, furo 2021.04.11.beta34"/>
         <title>dialogy.preprocess.text package - dialogy 0.5.0 documentation</title>
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
-<li class="toctree-l2 current"><a class="current reference internal" href="#">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 current has-children"><a class="current reference internal" href="#">dialogy.preprocess.text package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">dialogy.preprocess.text package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -178,6 +185,17 @@
         </label>
         <section id="dialogy-preprocess-text-package">
 <h1>dialogy.preprocess.text package<a class="headerlink" href="#dialogy-preprocess-text-package" title="Permalink to this headline">¶</a></h1>
+<section id="subpackages">
+<h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to this headline">¶</a></h2>
+<div class="toctree-wrapper compound">
+<ul>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html#module-contents">Module contents</a></li>
+</ul>
+</li>
+</ul>
+</div>
+</section>
 <section id="submodules">
 <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this headline">¶</a></h2>
 </section>
@@ -631,12 +649,12 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
       <footer>
         
         <div class="related-pages">
-          <a class="next-page" href="dialogy.types.html">
+          <a class="next-page" href="dialogy.preprocess.text.list_entity_plugin.html">
               <div class="page-info">
                 <div class="context">
                   <span>Next</span>
                 </div>
-                <div class="title">dialogy.types package</div>
+                <div class="title">dialogy.preprocess.text.list_entity_plugin package</div>
               </div>
               <svg><use href="#svg-arrow-right"></use></svg>
             </a>
@@ -682,6 +700,7 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
           <div class="toc-tree">
             <ul>
 <li><a class="reference internal" href="#">dialogy.preprocess.text package</a><ul>
+<li><a class="reference internal" href="#subpackages">Subpackages</a></li>
 <li><a class="reference internal" href="#submodules">Submodules</a></li>
 <li><a class="reference internal" href="#module-dialogy.preprocess.text.duckling_plugin">dialogy.preprocess.text.duckling_plugin module</a></li>
 <li><a class="reference internal" href="#module-dialogy.preprocess.text.merge_asr_output">dialogy.preprocess.text.merge_asr_output module</a></li>
diff --git a/docs/source/dialogy.preprocess.text.list_entity_plugin.html b/docs/source/dialogy.preprocess.text.list_entity_plugin.html
new file mode 100644
index 00000000..0f134081
--- /dev/null
+++ b/docs/source/dialogy.preprocess.text.list_entity_plugin.html
@@ -0,0 +1,268 @@
+<!doctype html>
+<html class="no-js">
+  <head><meta charset="utf-8"/>
+    <meta name="viewport" content="width=device-width,initial-scale=1"/>
+    <meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
+<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="dialogy.types package" href="dialogy.types.html" /><link rel="prev" title="dialogy.preprocess.text package" href="dialogy.preprocess.text.html" />
+
+    <meta name="generator" content="sphinx-3.5.3, furo 2021.04.11.beta34"/>
+        <title>dialogy.preprocess.text.list_entity_plugin package - dialogy 0.5.0 documentation</title>
+      <link rel="stylesheet" href="../_static/styles/furo.css?digest=59ab60ac09ea94ccfe6deddff6d715cce948a6fc">
+    <link rel="stylesheet" href="../_static/pygments.css">
+    <link media="(prefers-color-scheme: dark)" rel="stylesheet" href="../_static/pygments_dark.css">
+    
+
+
+<style>
+  :root {
+    --color-code-background: #f8f8f8;
+  --color-code-foreground: black;
+  
+  }
+  @media (prefers-color-scheme: dark) {
+    :root {
+      --color-code-background: #202020;
+  --color-code-foreground: #d0d0d0;
+  
+    }
+  }
+
+  /* For allowing end-user-specific overrides */
+  .override-light {
+    --color-code-background: #f8f8f8;
+  --color-code-foreground: black;
+  
+  }
+  .override-dark {
+    --color-code-background: #202020;
+  --color-code-foreground: #d0d0d0;
+  
+  }
+</style><link rel="stylesheet" type="text/css" href="../_static/copybutton.css" />
+    <link rel="stylesheet" href="../_static/styles/furo-extensions.css?digest=d391b54134226e4196576da3bdb6dddb7e05ba2b"></head>
+  <body dir="">
+    
+<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
+  <symbol id="svg-toc" viewBox="0 0 24 24">
+    <title>Contents</title>
+    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
+      stroke-width="1.5" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
+      <path stroke="none" d="M0 0h24v24H0z"/>
+      <line x1="4" y1="6" x2="20" y2="6" />
+      <line x1="10" y1="12" x2="20" y2="12" />
+      <line x1="6" y1="18" x2="20" y2="18" />
+    </svg>
+  </symbol>
+  <symbol id="svg-menu" viewBox="0 0 24 24">
+    <title>Menu</title>
+    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
+      stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
+      class="feather feather-menu">
+      <line x1="3" y1="12" x2="21" y2="12"></line>
+      <line x1="3" y1="6" x2="21" y2="6"></line>
+      <line x1="3" y1="18" x2="21" y2="18"></line>
+    </svg>
+  </symbol>
+  <symbol id="svg-arrow-right" viewBox="0 0 24 24">
+    <title>Expand</title>
+    <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
+      stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
+      class="feather feather-chevron-right">
+      <polyline points="9 18 15 12 9 6"></polyline>
+    </svg>
+  </symbol>
+</svg>
+
+<input type="checkbox" class="sidebar-toggle" name="__navigation" id="__navigation">
+<input type="checkbox" class="sidebar-toggle" name="__toc" id="__toc">
+<label class="overlay sidebar-overlay" for="__navigation"></label>
+<label class="overlay toc-overlay" for="__toc"></label>
+
+
+
+<div class="page">
+  <header class="mobile-header">
+    <div class="header-left">
+      <label class="nav-overlay-icon" for="__navigation">
+        <i class="icon"><svg><use href="#svg-menu"></use></svg></i>
+      </label>
+    </div>
+    <div class="header-center">
+      <a href="../index.html"><div class="brand">dialogy 0.5.0 documentation</div></a>
+    </div>
+    <div class="header-right">
+      <label class="toc-overlay-icon toc-header-icon" for="__toc">
+        <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
+      </label>
+    </div>
+  </header>
+  <aside class="sidebar-drawer">
+    <div class="sidebar-container">
+      
+      <div class="sidebar-sticky"><a class="sidebar-brand" href="../index.html">
+  
+  
+  <span class="sidebar-brand-text">dialogy 0.5.0 documentation</span>
+  
+</a><form class="sidebar-search-container" method="get" action="../search.html">
+  <input class="sidebar-search" placeholder=Search name="q">
+  <input type="hidden" name="check_keywords" value="yes">
+  <input type="hidden" name="area" value="default">
+</form><div class="sidebar-scroll"><div class="sidebar-tree">
+  <ul class="current">
+<li class="toctree-l1"><a class="reference internal" href="dialogy.cli.html">dialogy.cli package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.constants.html">dialogy.constants package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.parser.html">dialogy.parser package</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label for="toctree-checkbox-1"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label for="toctree-checkbox-2"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.parser.text.html">dialogy.parser.text package</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label for="toctree-checkbox-3"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.parser.text.entity.html">dialogy.parser.text.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.plugin.html">dialogy.plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.postprocess.html">dialogy.postprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label for="toctree-checkbox-4"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label for="toctree-checkbox-5"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.postprocess.text.html">dialogy.postprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label for="toctree-checkbox-6"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+<li class="toctree-l2 current has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+<li class="toctree-l3 current"><a class="current reference internal" href="#">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+<li class="toctree-l2 current"><a class="current reference internal" href="#">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1 current current-page"><a class="current reference internal" href="#">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.signal.html">dialogy.types.signal package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.slots.html">dialogy.types.slots package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.types.utterances.html">dialogy.types.utterances package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.utils.html">dialogy.utils package</a></li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.workflow.html">dialogy.workflow package</a></li>
+</ul>
+
+</div>
+</div>
+      </div>
+      
+    </div>
+  </aside>
+  <main class="main">
+    <div class="content">
+      <article role="main">
+        <label class="toc-overlay-icon toc-content-icon" for="__toc">
+          <i class="icon"><svg><use href="#svg-toc"></use></svg></i>
+        </label>
+        <section id="dialogy-preprocess-text-list-entity-plugin-package">
+<h1>dialogy.preprocess.text.list_entity_plugin package<a class="headerlink" href="#dialogy-preprocess-text-list-entity-plugin-package" title="Permalink to this headline">¶</a></h1>
+<section id="module-contents">
+<h2>Module contents<a class="headerlink" href="#module-contents" title="Permalink to this headline">¶</a></h2>
+</section>
+</section>
+
+      </article>
+      <footer>
+        
+        <div class="related-pages">
+          <a class="next-page" href="dialogy.types.html">
+              <div class="page-info">
+                <div class="context">
+                  <span>Next</span>
+                </div>
+                <div class="title">dialogy.types package</div>
+              </div>
+              <svg><use href="#svg-arrow-right"></use></svg>
+            </a>
+          <a class="prev-page" href="dialogy.preprocess.text.html">
+              <svg><use href="#svg-arrow-right"></use></svg>
+              <div class="page-info">
+                <div class="context">
+                  <span>Previous</span>
+                </div>
+                
+                <div class="title">dialogy.preprocess.text package</div>
+                
+              </div>
+            </a>
+        </div>
+
+        <div class="related-information">
+              Copyright &#169; 
+            |
+            Built with <a href="https://www.sphinx-doc.org/">Sphinx</a>
+              and
+              <a class="muted-link" href="https://pradyunsg.me">@pradyunsg</a>'s
+              <a href="https://github.com/pradyunsg/furo">Furo theme</a>.
+            |
+            <a class="muted-link" href="../_sources/source/dialogy.preprocess.text.list_entity_plugin.rst.txt"
+               rel="nofollow">
+              Show Source
+            </a>
+        </div>
+        
+      </footer>
+    </div>
+    <aside class="toc-drawer">
+      
+      
+      <div class="toc-sticky toc-scroll">
+        <div class="toc-title-container">
+          <span class="toc-title">
+            Contents
+          </span>
+        </div>
+        <div class="toc-tree-container">
+          <div class="toc-tree">
+            <ul>
+<li><a class="reference internal" href="#">dialogy.preprocess.text.list_entity_plugin package</a><ul>
+<li><a class="reference internal" href="#module-contents">Module contents</a></li>
+</ul>
+</li>
+</ul>
+
+          </div>
+        </div>
+      </div>
+      
+      
+    </aside>
+  </main>
+</div>
+    <script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
+    <script src="../_static/jquery.js"></script>
+    <script src="../_static/underscore.js"></script>
+    <script src="../_static/doctools.js"></script>
+    <script src="../_static/clipboard.min.js"></script>
+    <script src="../_static/copybutton.js"></script>
+    <script src="../_static/scripts/main.js?digest=e931d09b2a40c1bb82b542effe772014573baf67"></script></body>
+</html>
\ No newline at end of file
diff --git a/docs/source/dialogy.types.entity.html b/docs/source/dialogy.types.entity.html
index a8fc7397..4ea4e493 100644
--- a/docs/source/dialogy.types.entity.html
+++ b/docs/source/dialogy.types.entity.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2 current"><a class="current reference internal" href="#">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.types.html b/docs/source/dialogy.types.html
index 7ba5fa85..40204fac 100644
--- a/docs/source/dialogy.types.html
+++ b/docs/source/dialogy.types.html
@@ -3,7 +3,7 @@
   <head><meta charset="utf-8"/>
     <meta name="viewport" content="width=device-width,initial-scale=1"/>
     <meta name="color-scheme" content="light dark"><meta name="generator" content="Docutils 0.17: http://docutils.sourceforge.net/" />
-<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="dialogy.types.entity package" href="dialogy.types.entity.html" /><link rel="prev" title="dialogy.preprocess.text package" href="dialogy.preprocess.text.html" />
+<link rel="index" title="Index" href="../genindex.html" /><link rel="search" title="Search" href="../search.html" /><link rel="next" title="dialogy.types.entity package" href="dialogy.types.entity.html" /><link rel="prev" title="dialogy.preprocess.text.list_entity_plugin package" href="dialogy.preprocess.text.list_entity_plugin.html" />
 
     <meta name="generator" content="sphinx-3.5.3, furo 2021.04.11.beta34"/>
         <title>dialogy.types package - dialogy 0.5.0 documentation</title>
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children current-page"><a class="current reference internal" href="#">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -263,14 +270,14 @@ <h2>Subpackages<a class="headerlink" href="#subpackages" title="Permalink to thi
               </div>
               <svg><use href="#svg-arrow-right"></use></svg>
             </a>
-          <a class="prev-page" href="dialogy.preprocess.text.html">
+          <a class="prev-page" href="dialogy.preprocess.text.list_entity_plugin.html">
               <svg><use href="#svg-arrow-right"></use></svg>
               <div class="page-info">
                 <div class="context">
                   <span>Previous</span>
                 </div>
                 
-                <div class="title">dialogy.preprocess.text package</div>
+                <div class="title">dialogy.preprocess.text.list_entity_plugin package</div>
                 
               </div>
             </a>
diff --git a/docs/source/dialogy.types.intent.html b/docs/source/dialogy.types.intent.html
index 59265b65..7bfd277c 100644
--- a/docs/source/dialogy.types.intent.html
+++ b/docs/source/dialogy.types.intent.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.types.plugin.html b/docs/source/dialogy.types.plugin.html
index 4a4bf342..1c548fdb 100644
--- a/docs/source/dialogy.types.plugin.html
+++ b/docs/source/dialogy.types.plugin.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2 current"><a class="current reference internal" href="#">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.types.signal.html b/docs/source/dialogy.types.signal.html
index 221b82a0..e0f788e8 100644
--- a/docs/source/dialogy.types.signal.html
+++ b/docs/source/dialogy.types.signal.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.types.slots.html b/docs/source/dialogy.types.slots.html
index 04455b68..c60b2c00 100644
--- a/docs/source/dialogy.types.slots.html
+++ b/docs/source/dialogy.types.slots.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.types.utterances.html b/docs/source/dialogy.types.utterances.html
index b9fd6fb1..f1ff2717 100644
--- a/docs/source/dialogy.types.utterances.html
+++ b/docs/source/dialogy.types.utterances.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 current has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul class="current">
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/dialogy.utils.html b/docs/source/dialogy.utils.html
index 5c03e57d..367d7146 100644
--- a/docs/source/dialogy.utils.html
+++ b/docs/source/dialogy.utils.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
@@ -287,14 +294,14 @@ <h2>Submodules<a class="headerlink" href="#submodules" title="Permalink to this
 <span class="o">&lt;</span><span class="n">ipython</span><span class="o">-</span><span class="nb">input</span><span class="o">-</span><span class="mi">4</span><span class="o">-</span><span class="mi">556</span><span class="n">a11057179</span><span class="o">&gt;</span> <span class="ow">in</span> <span class="o">&lt;</span><span class="n">module</span><span class="o">&gt;</span>
 <span class="ne">----&gt; </span><span class="mi">1</span> <span class="n">traverse_dict</span><span class="p">(</span><span class="n">input_</span><span class="p">,</span> <span class="p">[</span><span class="s2">"planets"</span><span class="p">,</span> <span class="s2">"mars"</span><span class="p">,</span> <span class="mi">0</span> <span class="p">,</span> <span class="s2">"languages"</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="s2">"bop"</span><span class="p">])</span>
 
-<span class="nn">~/python/dialogy/dialogy/utils/__init__.py</span> in <span class="ni">traverse_dict</span><span class="nt">(obj, properties)</span>
+<span class="nn">~/anaconda3/envs/py38/lib/python3.8/site-packages/dialogy/utils/__init__.py</span> in <span class="ni">traverse_dict</span><span class="nt">(obj, properties)</span>
 <span class="g g-Whitespace">     </span><span class="mi">50</span>     <span class="sd">"""</span>
 <span class="g g-Whitespace">     </span><span class="mi">51</span><span class="sd">     try:</span>
 <span class="ne">---&gt; </span><span class="mi">52</span><span class="sd">         return reduce(lambda o, k: o[k], properties, obj)</span>
 <span class="g g-Whitespace">     </span><span class="mi">53</span><span class="sd">     except KeyError as key_error:</span>
 <span class="g g-Whitespace">     </span><span class="mi">54</span><span class="sd">         raise KeyError(</span>
 
-<span class="nn">~/python/dialogy/dialogy/utils/__init__.py</span> in <span class="ni">&lt;lambda&gt;</span><span class="nt">(o, k)</span>
+<span class="nn">~/anaconda3/envs/py38/lib/python3.8/site-packages/dialogy/utils/__init__.py</span> in <span class="ni">&lt;lambda&gt;</span><span class="nt">(o, k)</span>
 <span class="g g-Whitespace">     </span><span class="mi">50</span><span class="sd">     """</span>
 <span class="g g-Whitespace">     </span><span class="mi">51</span>     <span class="k">try</span><span class="p">:</span>
 <span class="ne">---&gt; </span><span class="mi">52</span>         <span class="k">return</span> <span class="n">reduce</span><span class="p">(</span><span class="k">lambda</span> <span class="n">o</span><span class="p">,</span> <span class="n">k</span><span class="p">:</span> <span class="n">o</span><span class="p">[</span><span class="n">k</span><span class="p">],</span> <span class="n">properties</span><span class="p">,</span> <span class="n">obj</span><span class="p">)</span>
diff --git a/docs/source/dialogy.workflow.html b/docs/source/dialogy.workflow.html
index aaf38e30..3fd1cbc5 100644
--- a/docs/source/dialogy.workflow.html
+++ b/docs/source/dialogy.workflow.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs/source/modules.html b/docs/source/modules.html
index e7fb7dd4..3931b9a3 100644
--- a/docs/source/modules.html
+++ b/docs/source/modules.html
@@ -141,11 +141,18 @@
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.slot_filler.html">dialogy.postprocess.text.slot_filler package</a></li>
 <li class="toctree-l1"><a class="reference internal" href="dialogy.postprocess.text.voting.html">dialogy.postprocess.text.voting package</a></li>
 <li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.html">dialogy.preprocess package</a><input class="toctree-checkbox" id="toctree-checkbox-7" name="toctree-checkbox-7" type="checkbox"/><label for="toctree-checkbox-7"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
-<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
+<li class="toctree-l2 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l3"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a></li>
-<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-8" name="toctree-checkbox-8" type="checkbox"/><label for="toctree-checkbox-8"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+</ul>
+</li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.preprocess.text.html">dialogy.preprocess.text package</a><input class="toctree-checkbox" id="toctree-checkbox-9" name="toctree-checkbox-9" type="checkbox"/><label for="toctree-checkbox-9"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
+<li class="toctree-l2"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+</ul>
+</li>
+<li class="toctree-l1"><a class="reference internal" href="dialogy.preprocess.text.list_entity_plugin.html">dialogy.preprocess.text.list_entity_plugin package</a></li>
+<li class="toctree-l1 has-children"><a class="reference internal" href="dialogy.types.html">dialogy.types package</a><input class="toctree-checkbox" id="toctree-checkbox-10" name="toctree-checkbox-10" type="checkbox"/><label for="toctree-checkbox-10"><i class="icon"><svg><use href="#svg-arrow-right"></use></svg></i></label><ul>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.entity.html">dialogy.types.entity package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.intent.html">dialogy.types.intent package</a></li>
 <li class="toctree-l2"><a class="reference internal" href="dialogy.types.plugin.html">dialogy.types.plugin package</a></li>
diff --git a/docs_src/source/dialogy.preprocess.text.list_entity_plugin.rst b/docs_src/source/dialogy.preprocess.text.list_entity_plugin.rst
new file mode 100644
index 00000000..600ff384
--- /dev/null
+++ b/docs_src/source/dialogy.preprocess.text.list_entity_plugin.rst
@@ -0,0 +1,10 @@
+dialogy.preprocess.text.list\_entity\_plugin package
+====================================================
+
+Module contents
+---------------
+
+.. automodule:: dialogy.preprocess.text.list_entity_plugin
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs_src/source/dialogy.preprocess.text.rst b/docs_src/source/dialogy.preprocess.text.rst
index 6c5d7cb2..acfd127a 100644
--- a/docs_src/source/dialogy.preprocess.text.rst
+++ b/docs_src/source/dialogy.preprocess.text.rst
@@ -1,6 +1,14 @@
 dialogy.preprocess.text package
 ===============================
 
+Subpackages
+-----------
+
+.. toctree::
+   :maxdepth: 4
+
+   dialogy.preprocess.text.list_entity_plugin
+
 Submodules
 ----------
 
diff --git a/poetry.lock b/poetry.lock
index 95920330..46508df0 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -24,16 +24,16 @@ python-versions = "*"
 
 [[package]]
 name = "astroid"
-version = "2.4.2"
+version = "2.5.6"
 description = "An abstract syntax tree for Python with inference support."
 category = "dev"
 optional = false
-python-versions = ">=3.5"
+python-versions = "~=3.6"
 
 [package.dependencies]
-lazy-object-proxy = ">=1.4.0,<1.5.0"
-six = ">=1.12,<2.0"
-wrapt = ">=1.11,<2.0"
+lazy-object-proxy = ">=1.4.0"
+typed-ast = {version = ">=1.4.0,<1.5", markers = "implementation_name == \"cpython\" and python_version < \"3.8\""}
+wrapt = ">=1.11,<1.13"
 
 [[package]]
 name = "atomicwrites"
@@ -59,7 +59,7 @@ tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>
 
 [[package]]
 name = "babel"
-version = "2.9.0"
+version = "2.9.1"
 description = "Internationalization utilities"
 category = "dev"
 optional = false
@@ -198,7 +198,7 @@ docs = ["mkdocs-material (>=5.5.2,<6.0.0)", "mkdocstrings (>=0.12.2,<0.13.0)", "
 
 [[package]]
 name = "coverage"
-version = "5.3.1"
+version = "5.5"
 description = "Code coverage measurement for Python"
 category = "dev"
 optional = false
@@ -225,7 +225,7 @@ python-versions = "*"
 
 [[package]]
 name = "docutils"
-version = "0.17"
+version = "0.16"
 description = "Docutils -- Python Documentation Utilities"
 category = "dev"
 optional = false
@@ -249,25 +249,26 @@ test = ["pytest", "pytest-cov", "pytest-xdist"]
 
 [[package]]
 name = "gitdb"
-version = "4.0.5"
+version = "4.0.7"
 description = "Git Object Database"
 category = "dev"
 optional = false
 python-versions = ">=3.4"
 
 [package.dependencies]
-smmap = ">=3.0.1,<4"
+smmap = ">=3.0.1,<5"
 
 [[package]]
 name = "gitpython"
-version = "3.1.12"
+version = "3.1.15"
 description = "Python Git Library"
 category = "dev"
 optional = false
-python-versions = ">=3.4"
+python-versions = ">=3.5"
 
 [package.dependencies]
 gitdb = ">=4.0.1,<5"
+typing-extensions = ">=3.7.4.0"
 
 [[package]]
 name = "httpretty"
@@ -304,6 +305,22 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[[package]]
+name = "importlib-metadata"
+version = "4.0.1"
+description = "Read metadata from Python packages"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.dependencies]
+typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""}
+zipp = ">=0.5"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"]
+
 [[package]]
 name = "iniconfig"
 version = "1.1.1"
@@ -314,7 +331,7 @@ python-versions = "*"
 
 [[package]]
 name = "ipython"
-version = "7.22.0"
+version = "7.23.1"
 description = "IPython: Productive Interactive Computing"
 category = "dev"
 optional = false
@@ -326,6 +343,7 @@ backcall = "*"
 colorama = {version = "*", markers = "sys_platform == \"win32\""}
 decorator = "*"
 jedi = ">=0.16"
+matplotlib-inline = "*"
 pexpect = {version = ">4.3", markers = "sys_platform != \"win32\""}
 pickleshare = "*"
 prompt-toolkit = ">=2.0.0,<3.0.0 || >3.0.0,<3.0.1 || >3.0.1,<3.1.0"
@@ -353,7 +371,7 @@ python-versions = "*"
 
 [[package]]
 name = "isort"
-version = "5.7.0"
+version = "5.8.0"
 description = "A Python utility / library to sort Python imports."
 category = "dev"
 optional = false
@@ -395,46 +413,44 @@ i18n = ["Babel (>=0.8)"]
 
 [[package]]
 name = "lazy-object-proxy"
-version = "1.4.3"
+version = "1.6.0"
 description = "A fast and thorough lazy object proxy."
 category = "dev"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-
-[[package]]
-name = "libcst"
-version = "0.3.18"
-description = "A concrete syntax tree with AST-like properties for Python 3.5, 3.6, 3.7 and 3.8 programs."
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-pyyaml = ">=5.2"
-typing-extensions = ">=3.7.4.2"
-typing-inspect = ">=0.4.0"
-
-[package.extras]
-dev = ["black (==20.8b1)", "codecov (>=2.1.4)", "coverage (>=4.5.4)", "fixit (==0.1.1)", "flake8 (>=3.7.8)", "hypothesis (>=4.36.0)", "hypothesmith (>=0.0.4)", "isort (==5.5.3)", "jupyter (>=1.0.0)", "nbsphinx (>=0.4.2)", "pyre-check (==0.0.41)", "sphinx-rtd-theme (>=0.4.3)", "prompt-toolkit (>=2.0.9)", "tox (>=3.18.1)"]
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
 [[package]]
 name = "markdown"
-version = "3.3.3"
+version = "3.3.4"
 description = "Python implementation of Markdown."
 category = "dev"
 optional = false
 python-versions = ">=3.6"
 
+[package.dependencies]
+importlib-metadata = {version = "*", markers = "python_version < \"3.8\""}
+
 [package.extras]
 testing = ["coverage", "pyyaml"]
 
 [[package]]
 name = "markupsafe"
-version = "1.1.1"
+version = "2.0.0"
 description = "Safely add untrusted strings to HTML/XML markup."
 category = "main"
 optional = false
-python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
+python-versions = ">=3.6"
+
+[[package]]
+name = "matplotlib-inline"
+version = "0.1.2"
+description = "Inline Matplotlib backend for Jupyter"
+category = "dev"
+optional = false
+python-versions = ">=3.5"
+
+[package.dependencies]
+traitlets = "*"
 
 [[package]]
 name = "mccabe"
@@ -470,7 +486,7 @@ python-versions = "*"
 
 [[package]]
 name = "numpy"
-version = "1.20.2"
+version = "1.20.3"
 description = "NumPy is the fundamental package for array computing with Python."
 category = "main"
 optional = false
@@ -478,7 +494,7 @@ python-versions = ">=3.7"
 
 [[package]]
 name = "packaging"
-version = "20.8"
+version = "20.9"
 description = "Core utilities for Python packages"
 category = "main"
 optional = false
@@ -509,7 +525,7 @@ python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [[package]]
 name = "pbr"
-version = "5.5.1"
+version = "5.6.0"
 description = "Python Build Reasonableness"
 category = "dev"
 optional = false
@@ -542,6 +558,9 @@ category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
 
+[package.dependencies]
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
+
 [package.extras]
 dev = ["pre-commit", "tox"]
 
@@ -605,33 +624,20 @@ smartypants = "*"
 [package.extras]
 monitoring = ["watchdog"]
 
-[[package]]
-name = "pycln"
-version = "0.0.1"
-description = "A formatter for finding and removing unused import statements."
-category = "dev"
-optional = false
-python-versions = ">=3.6,<3.10"
-
-[package.dependencies]
-libcst = ">=0.3.10,<0.4.0"
-pathspec = ">=0.8.0,<0.9.0"
-pyyaml = ">=5.3.1,<6.0.0"
-toml = ">=0.10.1,<0.11.0"
-typer = ">=0.3.1,<0.4.0"
-
 [[package]]
 name = "pydantic"
-version = "1.7.3"
+version = "1.8.2"
 description = "Data validation and settings management using python 3.6 type hinting"
 category = "main"
 optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.6.1"
+
+[package.dependencies]
+typing-extensions = ">=3.7.4.3"
 
 [package.extras]
 dotenv = ["python-dotenv (>=0.10.4)"]
 email = ["email-validator (>=1.0.3)"]
-typing_extensions = ["typing-extensions (>=3.7.2)"]
 
 [[package]]
 name = "pydash"
@@ -646,7 +652,7 @@ dev = ["coverage", "docformatter", "flake8", "invoke", "mock", "pylint", "pytest
 
 [[package]]
 name = "pygments"
-version = "2.7.4"
+version = "2.9.0"
 description = "Pygments is a syntax highlighting package written in Python."
 category = "dev"
 optional = false
@@ -654,14 +660,14 @@ python-versions = ">=3.5"
 
 [[package]]
 name = "pylint"
-version = "2.6.0"
+version = "2.8.2"
 description = "python code static checker"
 category = "dev"
 optional = false
-python-versions = ">=3.5.*"
+python-versions = "~=3.6"
 
 [package.dependencies]
-astroid = ">=2.4.0,<=2.5"
+astroid = ">=2.5.6,<2.7"
 colorama = {version = "*", markers = "sys_platform == \"win32\""}
 isort = ">=4.2.5,<6"
 mccabe = ">=0.6,<0.7"
@@ -704,7 +710,7 @@ python-versions = "*"
 
 [[package]]
 name = "pytest"
-version = "6.2.1"
+version = "6.2.4"
 description = "pytest: simple powerful testing with Python"
 category = "dev"
 optional = false
@@ -714,6 +720,7 @@ python-versions = ">=3.6"
 atomicwrites = {version = ">=1.0", markers = "sys_platform == \"win32\""}
 attrs = ">=19.2.0"
 colorama = {version = "*", markers = "sys_platform == \"win32\""}
+importlib-metadata = {version = ">=0.12", markers = "python_version < \"3.8\""}
 iniconfig = "*"
 packaging = "*"
 pluggy = ">=0.12,<1.0.0a1"
@@ -725,14 +732,14 @@ testing = ["argcomplete", "hypothesis (>=3.56)", "mock", "nose", "requests", "xm
 
 [[package]]
 name = "pytest-cov"
-version = "2.10.1"
+version = "2.11.1"
 description = "Pytest plugin for measuring coverage."
 category = "dev"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
 
 [package.dependencies]
-coverage = ">=4.4"
+coverage = ">=5.2.1"
 pytest = ">=4.6"
 
 [package.extras]
@@ -767,11 +774,11 @@ python-versions = "*"
 
 [[package]]
 name = "pyyaml"
-version = "5.3.1"
+version = "5.4.1"
 description = "YAML parser and emitter for Python"
 category = "main"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*"
 
 [[package]]
 name = "pyyaml-include"
@@ -827,7 +834,7 @@ dev = ["pytest"]
 
 [[package]]
 name = "six"
-version = "1.15.0"
+version = "1.16.0"
 description = "Python 2 and 3 compatibility utilities"
 category = "main"
 optional = false
@@ -843,11 +850,11 @@ python-versions = "*"
 
 [[package]]
 name = "smmap"
-version = "3.0.4"
+version = "4.0.0"
 description = "A pure Python implementation of a sliding window memory map manager"
 category = "dev"
 optional = false
-python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+python-versions = ">=3.5"
 
 [[package]]
 name = "snowballstemmer"
@@ -867,7 +874,7 @@ python-versions = ">=3.6"
 
 [[package]]
 name = "sphinx"
-version = "3.5.3"
+version = "3.5.4"
 description = "Python documentation generator"
 category = "dev"
 optional = false
@@ -877,7 +884,7 @@ python-versions = ">=3.5"
 alabaster = ">=0.7,<0.8"
 babel = ">=1.3"
 colorama = {version = ">=0.3.5", markers = "sys_platform == \"win32\""}
-docutils = ">=0.12"
+docutils = ">=0.12,<0.17"
 imagesize = "*"
 Jinja2 = ">=2.3"
 packaging = "*"
@@ -990,6 +997,7 @@ optional = false
 python-versions = ">=3.6"
 
 [package.dependencies]
+importlib-metadata = {version = ">=1.7.0", markers = "python_version < \"3.8\""}
 pbr = ">=2.0.0,<2.1.0 || >2.1.0"
 
 [[package]]
@@ -1016,61 +1024,32 @@ test = ["pytest"]
 
 [[package]]
 name = "typed-ast"
-version = "1.4.2"
+version = "1.4.3"
 description = "a fork of Python 2 and 3 ast modules with type comment support"
 category = "dev"
 optional = false
 python-versions = "*"
 
-[[package]]
-name = "typer"
-version = "0.3.2"
-description = "Typer, build great CLIs. Easy to code. Based on Python type hints."
-category = "dev"
-optional = false
-python-versions = ">=3.6"
-
-[package.dependencies]
-click = ">=7.1.1,<7.2.0"
-
-[package.extras]
-test = ["pytest-xdist (>=1.32.0,<2.0.0)", "pytest-sugar (>=0.9.4,<0.10.0)", "mypy (==0.782)", "black (>=19.10b0,<20.0b0)", "isort (>=5.0.6,<6.0.0)", "shellingham (>=1.3.0,<2.0.0)", "pytest (>=4.4.0,<5.4.0)", "pytest-cov (>=2.10.0,<3.0.0)", "coverage (>=5.2,<6.0)"]
-all = ["colorama (>=0.4.3,<0.5.0)", "shellingham (>=1.3.0,<2.0.0)"]
-dev = ["autoflake (>=1.3.1,<2.0.0)", "flake8 (>=3.8.3,<4.0.0)"]
-doc = ["mkdocs (>=1.1.2,<2.0.0)", "mkdocs-material (>=5.4.0,<6.0.0)", "markdown-include (>=0.5.1,<0.6.0)"]
-
 [[package]]
 name = "typing-extensions"
-version = "3.7.4.3"
+version = "3.10.0.0"
 description = "Backported and Experimental Type Hints for Python 3.5+"
-category = "dev"
-optional = false
-python-versions = "*"
-
-[[package]]
-name = "typing-inspect"
-version = "0.6.0"
-description = "Runtime inspection utilities for typing module."
-category = "dev"
+category = "main"
 optional = false
 python-versions = "*"
 
-[package.dependencies]
-mypy-extensions = ">=0.3.0"
-typing-extensions = ">=3.7.4"
-
 [[package]]
 name = "urllib3"
-version = "1.26.2"
+version = "1.26.4"
 description = "HTTP library with thread-safe connection pooling, file post, and more."
 category = "main"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
 
 [package.extras]
-brotli = ["brotlipy (>=0.6.0)"]
 secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"]
 socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+brotli = ["brotlipy (>=0.6.0)"]
 
 [[package]]
 name = "watchdog"
@@ -1099,10 +1078,22 @@ category = "dev"
 optional = false
 python-versions = "*"
 
+[[package]]
+name = "zipp"
+version = "3.4.1"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+category = "dev"
+optional = false
+python-versions = ">=3.6"
+
+[package.extras]
+docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"]
+testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"]
+
 [metadata]
 lock-version = "1.1"
-python-versions = ">=3.8,<3.10"
-content-hash = "f54e9f85fd9e35847d1b9d94fe6dfa0256236e21893b0967f9b72385b55863d5"
+python-versions = "^3.7"
+content-hash = "1be55ca2ebe6c96f71c265f3872d2d7c4db425e291563daf94e444cce378c18f"
 
 [metadata.files]
 alabaster = [
@@ -1118,8 +1109,8 @@ appnope = [
     {file = "appnope-0.1.2.tar.gz", hash = "sha256:dd83cd4b5b460958838f6eb3000c660b1f9caf2a5b1de4264e941512f603258a"},
 ]
 astroid = [
-    {file = "astroid-2.4.2-py3-none-any.whl", hash = "sha256:bc58d83eb610252fd8de6363e39d4f1d0619c894b0ed24603b881c02e64c7386"},
-    {file = "astroid-2.4.2.tar.gz", hash = "sha256:2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703"},
+    {file = "astroid-2.5.6-py3-none-any.whl", hash = "sha256:4db03ab5fc3340cf619dbc25e42c2cc3755154ce6009469766d7143d1fc2ee4e"},
+    {file = "astroid-2.5.6.tar.gz", hash = "sha256:8a398dfce302c13f14bab13e2b14fe385d32b73f4e4853b9bdfb64598baa1975"},
 ]
 atomicwrites = [
     {file = "atomicwrites-1.4.0-py2.py3-none-any.whl", hash = "sha256:6d1784dea7c0c8d4a5172b6c620f40b6e4cbfdf96d783691f2e1302a7b88e197"},
@@ -1130,8 +1121,8 @@ attrs = [
     {file = "attrs-20.3.0.tar.gz", hash = "sha256:832aa3cde19744e49938b91fea06d69ecb9e649c93ba974535d08ad92164f700"},
 ]
 babel = [
-    {file = "Babel-2.9.0-py2.py3-none-any.whl", hash = "sha256:9d35c22fcc79893c3ecc85ac4a56cde1ecf3f19c540bba0922308a6c06ca6fa5"},
-    {file = "Babel-2.9.0.tar.gz", hash = "sha256:da031ab54472314f210b0adcff1588ee5d1d1d0ba4dbd07b94dba82bde791e05"},
+    {file = "Babel-2.9.1-py2.py3-none-any.whl", hash = "sha256:ab49e12b91d937cd11f0b67cb259a57ab4ad2b59ac7a3b41d6c06c0ac5b0def9"},
+    {file = "Babel-2.9.1.tar.gz", hash = "sha256:bc0c176f9f6a994582230df350aa6e05ba2ebe4b3ac317eab29d9be5d2768da0"},
 ]
 backcall = [
     {file = "backcall-0.2.0-py2.py3-none-any.whl", hash = "sha256:fbbce6a29f263178a1f7915c1940bde0ec2b2a967566fe1c65c1dfb7422bd255"},
@@ -1174,55 +1165,58 @@ copier = [
     {file = "copier-5.1.0.tar.gz", hash = "sha256:4afec02c6fa3efcac73e89307a1fddce1b71bf43f2df2adc338b97b89949a59b"},
 ]
 coverage = [
-    {file = "coverage-5.3.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:fabeeb121735d47d8eab8671b6b031ce08514c86b7ad8f7d5490a7b6dcd6267d"},
-    {file = "coverage-5.3.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:7e4d159021c2029b958b2363abec4a11db0ce8cd43abb0d9ce44284cb97217e7"},
-    {file = "coverage-5.3.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:378ac77af41350a8c6b8801a66021b52da8a05fd77e578b7380e876c0ce4f528"},
-    {file = "coverage-5.3.1-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:e448f56cfeae7b1b3b5bcd99bb377cde7c4eb1970a525c770720a352bc4c8044"},
-    {file = "coverage-5.3.1-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:cc44e3545d908ecf3e5773266c487ad1877be718d9dc65fc7eb6e7d14960985b"},
-    {file = "coverage-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:08b3ba72bd981531fd557f67beee376d6700fba183b167857038997ba30dd297"},
-    {file = "coverage-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:8dacc4073c359f40fcf73aede8428c35f84639baad7e1b46fce5ab7a8a7be4bb"},
-    {file = "coverage-5.3.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:ee2f1d1c223c3d2c24e3afbb2dd38be3f03b1a8d6a83ee3d9eb8c36a52bee899"},
-    {file = "coverage-5.3.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:9a9d4ff06804920388aab69c5ea8a77525cf165356db70131616acd269e19b36"},
-    {file = "coverage-5.3.1-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:782a5c7df9f91979a7a21792e09b34a658058896628217ae6362088b123c8500"},
-    {file = "coverage-5.3.1-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:fda29412a66099af6d6de0baa6bd7c52674de177ec2ad2630ca264142d69c6c7"},
-    {file = "coverage-5.3.1-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:f2c6888eada180814b8583c3e793f3f343a692fc802546eed45f40a001b1169f"},
-    {file = "coverage-5.3.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:8f33d1156241c43755137288dea619105477961cfa7e47f48dbf96bc2c30720b"},
-    {file = "coverage-5.3.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:b239711e774c8eb910e9b1ac719f02f5ae4bf35fa0420f438cdc3a7e4e7dd6ec"},
-    {file = "coverage-5.3.1-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:f54de00baf200b4539a5a092a759f000b5f45fd226d6d25a76b0dff71177a714"},
-    {file = "coverage-5.3.1-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:be0416074d7f253865bb67630cf7210cbc14eb05f4099cc0f82430135aaa7a3b"},
-    {file = "coverage-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:c46643970dff9f5c976c6512fd35768c4a3819f01f61169d8cdac3f9290903b7"},
-    {file = "coverage-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9a4f66259bdd6964d8cf26142733c81fb562252db74ea367d9beb4f815478e72"},
-    {file = "coverage-5.3.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c6e5174f8ca585755988bc278c8bb5d02d9dc2e971591ef4a1baabdf2d99589b"},
-    {file = "coverage-5.3.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:3911c2ef96e5ddc748a3c8b4702c61986628bb719b8378bf1e4a6184bbd48fe4"},
-    {file = "coverage-5.3.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:c5ec71fd4a43b6d84ddb88c1df94572479d9a26ef3f150cef3dacefecf888105"},
-    {file = "coverage-5.3.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:f51dbba78d68a44e99d484ca8c8f604f17e957c1ca09c3ebc2c7e3bbd9ba0448"},
-    {file = "coverage-5.3.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:a2070c5affdb3a5e751f24208c5c4f3d5f008fa04d28731416e023c93b275277"},
-    {file = "coverage-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:535dc1e6e68fad5355f9984d5637c33badbdc987b0c0d303ee95a6c979c9516f"},
-    {file = "coverage-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:a4857f7e2bc6921dbd487c5c88b84f5633de3e7d416c4dc0bb70256775551a6c"},
-    {file = "coverage-5.3.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:fac3c432851038b3e6afe086f777732bcf7f6ebbfd90951fa04ee53db6d0bcdd"},
-    {file = "coverage-5.3.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:cd556c79ad665faeae28020a0ab3bda6cd47d94bec48e36970719b0b86e4dcf4"},
-    {file = "coverage-5.3.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a66ca3bdf21c653e47f726ca57f46ba7fc1f260ad99ba783acc3e58e3ebdb9ff"},
-    {file = "coverage-5.3.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:ab110c48bc3d97b4d19af41865e14531f300b482da21783fdaacd159251890e8"},
-    {file = "coverage-5.3.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e52d3d95df81c8f6b2a1685aabffadf2d2d9ad97203a40f8d61e51b70f191e4e"},
-    {file = "coverage-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:fa10fee7e32213f5c7b0d6428ea92e3a3fdd6d725590238a3f92c0de1c78b9d2"},
-    {file = "coverage-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:ce6f3a147b4b1a8b09aae48517ae91139b1b010c5f36423fa2b866a8b23df879"},
-    {file = "coverage-5.3.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:93a280c9eb736a0dcca19296f3c30c720cb41a71b1f9e617f341f0a8e791a69b"},
-    {file = "coverage-5.3.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:3102bb2c206700a7d28181dbe04d66b30780cde1d1c02c5f3c165cf3d2489497"},
-    {file = "coverage-5.3.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8ffd4b204d7de77b5dd558cdff986a8274796a1e57813ed005b33fd97e29f059"},
-    {file = "coverage-5.3.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:a607ae05b6c96057ba86c811d9c43423f35e03874ffb03fbdcd45e0637e8b631"},
-    {file = "coverage-5.3.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:3a3c3f8863255f3c31db3889f8055989527173ef6192a283eb6f4db3c579d830"},
-    {file = "coverage-5.3.1-cp38-cp38-win32.whl", hash = "sha256:ff1330e8bc996570221b450e2d539134baa9465f5cb98aff0e0f73f34172e0ae"},
-    {file = "coverage-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:3498b27d8236057def41de3585f317abae235dd3a11d33e01736ffedb2ef8606"},
-    {file = "coverage-5.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ceb499d2b3d1d7b7ba23abe8bf26df5f06ba8c71127f188333dddcf356b4b63f"},
-    {file = "coverage-5.3.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:3b14b1da110ea50c8bcbadc3b82c3933974dbeea1832e814aab93ca1163cd4c1"},
-    {file = "coverage-5.3.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:76b2775dda7e78680d688daabcb485dc87cf5e3184a0b3e012e1d40e38527cc8"},
-    {file = "coverage-5.3.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:cef06fb382557f66d81d804230c11ab292d94b840b3cb7bf4450778377b592f4"},
-    {file = "coverage-5.3.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f61319e33222591f885c598e3e24f6a4be3533c1d70c19e0dc59e83a71ce27d"},
-    {file = "coverage-5.3.1-cp39-cp39-win32.whl", hash = "sha256:cc6f8246e74dd210d7e2b56c76ceaba1cc52b025cd75dbe96eb48791e0250e98"},
-    {file = "coverage-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:2757fa64e11ec12220968f65d086b7a29b6583d16e9a544c889b22ba98555ef1"},
-    {file = "coverage-5.3.1-pp36-none-any.whl", hash = "sha256:723d22d324e7997a651478e9c5a3120a0ecbc9a7e94071f7e1954562a8806cf3"},
-    {file = "coverage-5.3.1-pp37-none-any.whl", hash = "sha256:c89b558f8a9a5a6f2cfc923c304d49f0ce629c3bd85cb442ca258ec20366394c"},
-    {file = "coverage-5.3.1.tar.gz", hash = "sha256:38f16b1317b8dd82df67ed5daa5f5e7c959e46579840d77a67a4ceb9cef0a50b"},
+    {file = "coverage-5.5-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:b6d534e4b2ab35c9f93f46229363e17f63c53ad01330df9f2d6bd1187e5eaacf"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b7895207b4c843c76a25ab8c1e866261bcfe27bfaa20c192de5190121770672b"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:c2723d347ab06e7ddad1a58b2a821218239249a9e4365eaff6649d31180c1669"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:900fbf7759501bc7807fd6638c947d7a831fc9fdf742dc10f02956ff7220fa90"},
+    {file = "coverage-5.5-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:004d1880bed2d97151facef49f08e255a20ceb6f9432df75f4eef018fdd5a78c"},
+    {file = "coverage-5.5-cp27-cp27m-win32.whl", hash = "sha256:06191eb60f8d8a5bc046f3799f8a07a2d7aefb9504b0209aff0b47298333302a"},
+    {file = "coverage-5.5-cp27-cp27m-win_amd64.whl", hash = "sha256:7501140f755b725495941b43347ba8a2777407fc7f250d4f5a7d2a1050ba8e82"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:372da284cfd642d8e08ef606917846fa2ee350f64994bebfbd3afb0040436905"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:8963a499849a1fc54b35b1c9f162f4108017b2e6db2c46c1bed93a72262ed083"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:869a64f53488f40fa5b5b9dcb9e9b2962a66a87dab37790f3fcfb5144b996ef5"},
+    {file = "coverage-5.5-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:4a7697d8cb0f27399b0e393c0b90f0f1e40c82023ea4d45d22bce7032a5d7b81"},
+    {file = "coverage-5.5-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:8d0a0725ad7c1a0bcd8d1b437e191107d457e2ec1084b9f190630a4fb1af78e6"},
+    {file = "coverage-5.5-cp310-cp310-manylinux1_x86_64.whl", hash = "sha256:51cb9476a3987c8967ebab3f0fe144819781fca264f57f89760037a2ea191cb0"},
+    {file = "coverage-5.5-cp310-cp310-win_amd64.whl", hash = "sha256:c0891a6a97b09c1f3e073a890514d5012eb256845c451bd48f7968ef939bf4ae"},
+    {file = "coverage-5.5-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:3487286bc29a5aa4b93a072e9592f22254291ce96a9fbc5251f566b6b7343cdb"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:deee1077aae10d8fa88cb02c845cfba9b62c55e1183f52f6ae6a2df6a2187160"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:f11642dddbb0253cc8853254301b51390ba0081750a8ac03f20ea8103f0c56b6"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:6c90e11318f0d3c436a42409f2749ee1a115cd8b067d7f14c148f1ce5574d701"},
+    {file = "coverage-5.5-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:30c77c1dc9f253283e34c27935fded5015f7d1abe83bc7821680ac444eaf7793"},
+    {file = "coverage-5.5-cp35-cp35m-win32.whl", hash = "sha256:9a1ef3b66e38ef8618ce5fdc7bea3d9f45f3624e2a66295eea5e57966c85909e"},
+    {file = "coverage-5.5-cp35-cp35m-win_amd64.whl", hash = "sha256:972c85d205b51e30e59525694670de6a8a89691186012535f9d7dbaa230e42c3"},
+    {file = "coverage-5.5-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af0e781009aaf59e25c5a678122391cb0f345ac0ec272c7961dc5455e1c40066"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:74d881fc777ebb11c63736622b60cb9e4aee5cace591ce274fb69e582a12a61a"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:92b017ce34b68a7d67bd6d117e6d443a9bf63a2ecf8567bb3d8c6c7bc5014465"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:d636598c8305e1f90b439dbf4f66437de4a5e3c31fdf47ad29542478c8508bbb"},
+    {file = "coverage-5.5-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:41179b8a845742d1eb60449bdb2992196e211341818565abded11cfa90efb821"},
+    {file = "coverage-5.5-cp36-cp36m-win32.whl", hash = "sha256:040af6c32813fa3eae5305d53f18875bedd079960822ef8ec067a66dd8afcd45"},
+    {file = "coverage-5.5-cp36-cp36m-win_amd64.whl", hash = "sha256:5fec2d43a2cc6965edc0bb9e83e1e4b557f76f843a77a2496cbe719583ce8184"},
+    {file = "coverage-5.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:18ba8bbede96a2c3dde7b868de9dcbd55670690af0988713f0603f037848418a"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:2910f4d36a6a9b4214bb7038d537f015346f413a975d57ca6b43bf23d6563b53"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:f0b278ce10936db1a37e6954e15a3730bea96a0997c26d7fee88e6c396c2086d"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:796c9c3c79747146ebd278dbe1e5c5c05dd6b10cc3bcb8389dfdf844f3ead638"},
+    {file = "coverage-5.5-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:53194af30d5bad77fcba80e23a1441c71abfb3e01192034f8246e0d8f99528f3"},
+    {file = "coverage-5.5-cp37-cp37m-win32.whl", hash = "sha256:184a47bbe0aa6400ed2d41d8e9ed868b8205046518c52464fde713ea06e3a74a"},
+    {file = "coverage-5.5-cp37-cp37m-win_amd64.whl", hash = "sha256:2949cad1c5208b8298d5686d5a85b66aae46d73eec2c3e08c817dd3513e5848a"},
+    {file = "coverage-5.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:217658ec7187497e3f3ebd901afdca1af062b42cfe3e0dafea4cced3983739f6"},
+    {file = "coverage-5.5-cp38-cp38-manylinux1_i686.whl", hash = "sha256:1aa846f56c3d49205c952d8318e76ccc2ae23303351d9270ab220004c580cfe2"},
+    {file = "coverage-5.5-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:24d4a7de75446be83244eabbff746d66b9240ae020ced65d060815fac3423759"},
+    {file = "coverage-5.5-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:d1f8bf7b90ba55699b3a5e44930e93ff0189aa27186e96071fac7dd0d06a1873"},
+    {file = "coverage-5.5-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:970284a88b99673ccb2e4e334cfb38a10aab7cd44f7457564d11898a74b62d0a"},
+    {file = "coverage-5.5-cp38-cp38-win32.whl", hash = "sha256:01d84219b5cdbfc8122223b39a954820929497a1cb1422824bb86b07b74594b6"},
+    {file = "coverage-5.5-cp38-cp38-win_amd64.whl", hash = "sha256:2e0d881ad471768bf6e6c2bf905d183543f10098e3b3640fc029509530091502"},
+    {file = "coverage-5.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d1f9ce122f83b2305592c11d64f181b87153fc2c2bbd3bb4a3dde8303cfb1a6b"},
+    {file = "coverage-5.5-cp39-cp39-manylinux1_i686.whl", hash = "sha256:13c4ee887eca0f4c5a247b75398d4114c37882658300e153113dafb1d76de529"},
+    {file = "coverage-5.5-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:52596d3d0e8bdf3af43db3e9ba8dcdaac724ba7b5ca3f6358529d56f7a166f8b"},
+    {file = "coverage-5.5-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:2cafbbb3af0733db200c9b5f798d18953b1a304d3f86a938367de1567f4b5bff"},
+    {file = "coverage-5.5-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:44d654437b8ddd9eee7d1eaee28b7219bec228520ff809af170488fd2fed3e2b"},
+    {file = "coverage-5.5-cp39-cp39-win32.whl", hash = "sha256:d314ed732c25d29775e84a960c3c60808b682c08d86602ec2c3008e1202e3bb6"},
+    {file = "coverage-5.5-cp39-cp39-win_amd64.whl", hash = "sha256:13034c4409db851670bc9acd836243aeee299949bd5673e11844befcb0149f03"},
+    {file = "coverage-5.5-pp36-none-any.whl", hash = "sha256:f030f8873312a16414c0d8e1a1ddff2d3235655a2174e3648b4fa66b3f2f1079"},
+    {file = "coverage-5.5-pp37-none-any.whl", hash = "sha256:2a3859cb82dcbda1cfd3e6f71c27081d18aa251d20a17d87d26d4cd216fb0af4"},
+    {file = "coverage-5.5.tar.gz", hash = "sha256:ebe78fe9a0e874362175b02371bdfbee64d8edc42a044253ddf4ee7d3c15212c"},
 ]
 decorator = [
     {file = "decorator-5.0.7-py3-none-any.whl", hash = "sha256:945d84890bb20cc4a2f4a31fc4311c0c473af65ea318617f13a7257c9a58bc98"},
@@ -1232,20 +1226,20 @@ docopt = [
     {file = "docopt-0.6.2.tar.gz", hash = "sha256:49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"},
 ]
 docutils = [
-    {file = "docutils-0.17-py2.py3-none-any.whl", hash = "sha256:a71042bb7207c03d5647f280427f14bfbd1a65c9eb84f4b341d85fafb6bb4bdf"},
-    {file = "docutils-0.17.tar.gz", hash = "sha256:e2ffeea817964356ba4470efba7c2f42b6b0de0b04e66378507e3e2504bbff4c"},
+    {file = "docutils-0.16-py2.py3-none-any.whl", hash = "sha256:0c5b78adfbf7762415433f5515cd5c9e762339e23369dbe8000d84a4bf4ab3af"},
+    {file = "docutils-0.16.tar.gz", hash = "sha256:c2de3a60e9e7d07be26b7f2b00ca0309c207e06c100f9cc2a94931fc75a478fc"},
 ]
 furo = [
     {file = "furo-2021.4.11b34-py3-none-any.whl", hash = "sha256:576a1dc1bcbe337d7c53cbc75b886802778a5964fd2e3324433d706066e9aea8"},
     {file = "furo-2021.4.11b34.tar.gz", hash = "sha256:3d88e2855949cecf5f562e8a28cab1a6d3355d82f3cf5796eddf9ec234e97519"},
 ]
 gitdb = [
-    {file = "gitdb-4.0.5-py3-none-any.whl", hash = "sha256:91f36bfb1ab7949b3b40e23736db18231bf7593edada2ba5c3a174a7b23657ac"},
-    {file = "gitdb-4.0.5.tar.gz", hash = "sha256:c9e1f2d0db7ddb9a704c2a0217be31214e91a4fe1dea1efad19ae42ba0c285c9"},
+    {file = "gitdb-4.0.7-py3-none-any.whl", hash = "sha256:6c4cc71933456991da20917998acbe6cf4fb41eeaab7d6d67fbc05ecd4c865b0"},
+    {file = "gitdb-4.0.7.tar.gz", hash = "sha256:96bf5c08b157a666fec41129e6d327235284cca4c81e92109260f353ba138005"},
 ]
 gitpython = [
-    {file = "GitPython-3.1.12-py3-none-any.whl", hash = "sha256:867ec3dfb126aac0f8296b19fb63b8c4a399f32b4b6fafe84c4b10af5fa9f7b5"},
-    {file = "GitPython-3.1.12.tar.gz", hash = "sha256:42dbefd8d9e2576c496ed0059f3103dcef7125b9ce16f9d5f9c834aed44a1dac"},
+    {file = "GitPython-3.1.15-py3-none-any.whl", hash = "sha256:a77824e516d3298b04fb36ec7845e92747df8fcfee9cacc32dd6239f9652f867"},
+    {file = "GitPython-3.1.15.tar.gz", hash = "sha256:05af150f47a5cca3f4b0af289b73aef8cf3c4fe2385015b06220cbcdee48bb6e"},
 ]
 httpretty = [
     {file = "httpretty-1.0.5.tar.gz", hash = "sha256:e53c927c4d3d781a0761727f1edfad64abef94e828718e12b672a678a8b3e0b5"},
@@ -1262,21 +1256,25 @@ imagesize = [
     {file = "imagesize-1.2.0-py2.py3-none-any.whl", hash = "sha256:6965f19a6a2039c7d48bca7dba2473069ff854c36ae6f19d2cde309d998228a1"},
     {file = "imagesize-1.2.0.tar.gz", hash = "sha256:b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1"},
 ]
+importlib-metadata = [
+    {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"},
+    {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"},
+]
 iniconfig = [
     {file = "iniconfig-1.1.1-py2.py3-none-any.whl", hash = "sha256:011e24c64b7f47f6ebd835bb12a743f2fbe9a26d4cecaa7f53bc4f35ee9da8b3"},
     {file = "iniconfig-1.1.1.tar.gz", hash = "sha256:bc3af051d7d14b2ee5ef9969666def0cd1a000e121eaea580d4a313df4b37f32"},
 ]
 ipython = [
-    {file = "ipython-7.22.0-py3-none-any.whl", hash = "sha256:c0ce02dfaa5f854809ab7413c601c4543846d9da81010258ecdab299b542d199"},
-    {file = "ipython-7.22.0.tar.gz", hash = "sha256:9c900332d4c5a6de534b4befeeb7de44ad0cc42e8327fa41b7685abde58cec74"},
+    {file = "ipython-7.23.1-py3-none-any.whl", hash = "sha256:f78c6a3972dde1cc9e4041cbf4de583546314ba52d3c97208e5b6b2221a9cb7d"},
+    {file = "ipython-7.23.1.tar.gz", hash = "sha256:714810a5c74f512b69d5f3b944c86e592cee0a5fb9c728e582f074610f6cf038"},
 ]
 ipython-genutils = [
     {file = "ipython_genutils-0.2.0-py2.py3-none-any.whl", hash = "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8"},
     {file = "ipython_genutils-0.2.0.tar.gz", hash = "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"},
 ]
 isort = [
-    {file = "isort-5.7.0-py3-none-any.whl", hash = "sha256:fff4f0c04e1825522ce6949973e83110a6e907750cd92d128b0d14aaaadbffdc"},
-    {file = "isort-5.7.0.tar.gz", hash = "sha256:c729845434366216d320e936b8ad6f9d681aab72dc7cbc2d51bedc3582f3ad1e"},
+    {file = "isort-5.8.0-py3-none-any.whl", hash = "sha256:2bb1680aad211e3c9944dbce1d4ba09a989f04e238296c87fe2139faa26d655d"},
+    {file = "isort-5.8.0.tar.gz", hash = "sha256:0a943902919f65c5684ac4e0154b1ad4fac6dcaa5d9f3426b732f1c8b5419be6"},
 ]
 jedi = [
     {file = "jedi-0.18.0-py2.py3-none-any.whl", hash = "sha256:18456d83f65f400ab0c2d3319e48520420ef43b23a086fdc05dff34132f0fb93"},
@@ -1287,89 +1285,72 @@ jinja2 = [
     {file = "Jinja2-2.11.3.tar.gz", hash = "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"},
 ]
 lazy-object-proxy = [
-    {file = "lazy-object-proxy-1.4.3.tar.gz", hash = "sha256:f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0"},
-    {file = "lazy_object_proxy-1.4.3-cp27-cp27m-macosx_10_13_x86_64.whl", hash = "sha256:a2238e9d1bb71a56cd710611a1614d1194dc10a175c1e08d75e1a7bcc250d442"},
-    {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win32.whl", hash = "sha256:efa1909120ce98bbb3777e8b6f92237f5d5c8ea6758efea36a473e1d38f7d3e4"},
-    {file = "lazy_object_proxy-1.4.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4677f594e474c91da97f489fea5b7daa17b5517190899cf213697e48d3902f5a"},
-    {file = "lazy_object_proxy-1.4.3-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c4b206227a8097f05c4dbdd323c50edf81f15db3b8dc064d08c62d37e1a504d"},
-    {file = "lazy_object_proxy-1.4.3-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:d945239a5639b3ff35b70a88c5f2f491913eb94871780ebfabb2568bd58afc5a"},
-    {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win32.whl", hash = "sha256:9651375199045a358eb6741df3e02a651e0330be090b3bc79f6d0de31a80ec3e"},
-    {file = "lazy_object_proxy-1.4.3-cp34-cp34m-win_amd64.whl", hash = "sha256:eba7011090323c1dadf18b3b689845fd96a61ba0a1dfbd7f24b921398affc357"},
-    {file = "lazy_object_proxy-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:48dab84ebd4831077b150572aec802f303117c8cc5c871e182447281ebf3ac50"},
-    {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:ca0a928a3ddbc5725be2dd1cf895ec0a254798915fb3a36af0964a0a4149e3db"},
-    {file = "lazy_object_proxy-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:194d092e6f246b906e8f70884e620e459fc54db3259e60cf69a4d66c3fda3449"},
-    {file = "lazy_object_proxy-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:97bb5884f6f1cdce0099f86b907aa41c970c3c672ac8b9c8352789e103cf3156"},
-    {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:cb2c7c57005a6804ab66f106ceb8482da55f5314b7fcb06551db1edae4ad1531"},
-    {file = "lazy_object_proxy-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:8d859b89baf8ef7f8bc6b00aa20316483d67f0b1cbf422f5b4dc56701c8f2ffb"},
-    {file = "lazy_object_proxy-1.4.3-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:1be7e4c9f96948003609aa6c974ae59830a6baecc5376c25c92d7d697e684c08"},
-    {file = "lazy_object_proxy-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d74bb8693bf9cf75ac3b47a54d716bbb1a92648d5f781fc799347cfc95952383"},
-    {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:9b15f3f4c0f35727d3a0fba4b770b3c4ebbb1fa907dbcc046a1d2799f3edd142"},
-    {file = "lazy_object_proxy-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9254f4358b9b541e3441b007a0ea0764b9d056afdeafc1a5569eee1cc6c1b9ea"},
-    {file = "lazy_object_proxy-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:a6ae12d08c0bf9909ce12385803a543bfe99b95fe01e752536a60af2b7797c62"},
-    {file = "lazy_object_proxy-1.4.3-cp38-cp38-win32.whl", hash = "sha256:5541cada25cd173702dbd99f8e22434105456314462326f06dba3e180f203dfd"},
-    {file = "lazy_object_proxy-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:59f79fef100b09564bc2df42ea2d8d21a64fdcda64979c0fa3db7bdaabaf6239"},
-]
-libcst = [
-    {file = "libcst-0.3.18-py3-none-any.whl", hash = "sha256:da89cc1a37702caa6fe7207b1257fad58f0d4643597279733106ca902b4fdbad"},
-    {file = "libcst-0.3.18.tar.gz", hash = "sha256:30154cd0aaede8f3adfc4bdead23fe022a57e88898b9993cc3fea3bfbaf780d2"},
+    {file = "lazy-object-proxy-1.6.0.tar.gz", hash = "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726"},
+    {file = "lazy_object_proxy-1.6.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b"},
+    {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win32.whl", hash = "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e"},
+    {file = "lazy_object_proxy-1.6.0-cp27-cp27m-win_amd64.whl", hash = "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93"},
+    {file = "lazy_object_proxy-1.6.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741"},
+    {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587"},
+    {file = "lazy_object_proxy-1.6.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4"},
+    {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win32.whl", hash = "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f"},
+    {file = "lazy_object_proxy-1.6.0-cp36-cp36m-win_amd64.whl", hash = "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3"},
+    {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981"},
+    {file = "lazy_object_proxy-1.6.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2"},
+    {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win32.whl", hash = "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd"},
+    {file = "lazy_object_proxy-1.6.0-cp37-cp37m-win_amd64.whl", hash = "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837"},
+    {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653"},
+    {file = "lazy_object_proxy-1.6.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3"},
+    {file = "lazy_object_proxy-1.6.0-cp38-cp38-win32.whl", hash = "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8"},
+    {file = "lazy_object_proxy-1.6.0-cp38-cp38-win_amd64.whl", hash = "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf"},
+    {file = "lazy_object_proxy-1.6.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad"},
+    {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43"},
+    {file = "lazy_object_proxy-1.6.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a"},
+    {file = "lazy_object_proxy-1.6.0-cp39-cp39-win32.whl", hash = "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61"},
+    {file = "lazy_object_proxy-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"},
 ]
 markdown = [
-    {file = "Markdown-3.3.3-py3-none-any.whl", hash = "sha256:c109c15b7dc20a9ac454c9e6025927d44460b85bd039da028d85e2b6d0bcc328"},
-    {file = "Markdown-3.3.3.tar.gz", hash = "sha256:5d9f2b5ca24bc4c7a390d22323ca4bad200368612b5aaa7796babf971d2b2f18"},
+    {file = "Markdown-3.3.4-py3-none-any.whl", hash = "sha256:96c3ba1261de2f7547b46a00ea8463832c921d3f9d6aba3f255a6f71386db20c"},
+    {file = "Markdown-3.3.4.tar.gz", hash = "sha256:31b5b491868dcc87d6c24b7e3d19a0d730d59d3e46f4eea6430a321bed387a49"},
 ]
 markupsafe = [
-    {file = "MarkupSafe-1.1.1-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27m-win32.whl", hash = "sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27m-win_amd64.whl", hash = "sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f"},
-    {file = "MarkupSafe-1.1.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1"},
-    {file = "MarkupSafe-1.1.1-cp34-cp34m-macosx_10_6_intel.whl", hash = "sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5"},
-    {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1"},
-    {file = "MarkupSafe-1.1.1-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735"},
-    {file = "MarkupSafe-1.1.1-cp34-cp34m-win32.whl", hash = "sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21"},
-    {file = "MarkupSafe-1.1.1-cp34-cp34m-win_amd64.whl", hash = "sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235"},
-    {file = "MarkupSafe-1.1.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b"},
-    {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f"},
-    {file = "MarkupSafe-1.1.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905"},
-    {file = "MarkupSafe-1.1.1-cp35-cp35m-win32.whl", hash = "sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1"},
-    {file = "MarkupSafe-1.1.1-cp35-cp35m-win_amd64.whl", hash = "sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_6_intel.whl", hash = "sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d53bc011414228441014aa71dbec320c66468c1030aae3a6e29778a3382d96e5"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:3b8a6499709d29c2e2399569d96719a1b21dcd94410a586a18526b143ec8470f"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:84dee80c15f1b560d55bcfe6d47b27d070b4681c699c572af2e3c7cc90a3b8e0"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:b1dba4527182c95a0db8b6060cc98ac49b9e2f5e64320e2b56e47cb2831978c7"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-win32.whl", hash = "sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66"},
-    {file = "MarkupSafe-1.1.1-cp36-cp36m-win_amd64.whl", hash = "sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_6_intel.whl", hash = "sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:bf5aa3cbcfdf57fa2ee9cd1822c862ef23037f5c832ad09cfea57fa846dec193"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:6fffc775d90dcc9aed1b89219549b329a9250d918fd0b8fa8d93d154918422e1"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:a6a744282b7718a2a62d2ed9d993cad6f5f585605ad352c11de459f4108df0a1"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:195d7d2c4fbb0ee8139a6cf67194f3973a6b3042d742ebe0a9ed36d8b6f0c07f"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-win32.whl", hash = "sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2"},
-    {file = "MarkupSafe-1.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6788b695d50a51edb699cb55e35487e430fa21f1ed838122d722e0ff0ac5ba15"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:cdb132fc825c38e1aeec2c8aa9338310d29d337bebbd7baa06889d09a60a1fa2"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:13d3144e1e340870b25e7b10b98d779608c02016d5184cfb9927a9f10c689f42"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:acf08ac40292838b3cbbb06cfe9b2cb9ec78fce8baca31ddb87aaac2e2dc3bc2"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:d9be0ba6c527163cbed5e0857c451fcd092ce83947944d6c14bc95441203f032"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:caabedc8323f1e93231b52fc32bdcde6db817623d33e100708d9a68e1f53b26b"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-win32.whl", hash = "sha256:596510de112c685489095da617b5bcbbac7dd6384aeebeda4df6025d0256a81b"},
-    {file = "MarkupSafe-1.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:e8313f01ba26fbbe36c7be1966a7b7424942f670f38e666995b88d012765b9be"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d73a845f227b0bfe8a7455ee623525ee656a9e2e749e4742706d80a6065d5e2c"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:98bae9582248d6cf62321dcb52aaf5d9adf0bad3b40582925ef7c7f0ed85fceb"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:2beec1e0de6924ea551859edb9e7679da6e4870d32cb766240ce17e0a0ba2014"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:7fed13866cf14bba33e7176717346713881f56d9d2bcebab207f7a036f41b850"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:6f1e273a344928347c1290119b493a1f0303c52f5a5eae5f16d74f48c15d4a85"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:feb7b34d6325451ef96bc0e36e1a6c0c1c64bc1fbec4b854f4529e51887b1621"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-win32.whl", hash = "sha256:22c178a091fc6630d0d045bdb5992d2dfe14e3259760e713c490da5323866c39"},
-    {file = "MarkupSafe-1.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7d644ddb4dbd407d31ffb699f1d140bc35478da613b441c582aeb7c43838dd8"},
-    {file = "MarkupSafe-1.1.1.tar.gz", hash = "sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2efaeb1baff547063bad2b2893a8f5e9c459c4624e1a96644bbba08910ae34e0"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:441ce2a8c17683d97e06447fcbccbdb057cbf587c78eb75ae43ea7858042fe2c"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:45535241baa0fc0ba2a43961a1ac7562ca3257f46c4c3e9c0de38b722be41bd1"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:90053234a6479738fd40d155268af631c7fca33365f964f2208867da1349294b"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:3b54a9c68995ef4164567e2cd1a5e16db5dac30b2a50c39c82db8d4afaf14f63"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:f58b5ba13a5689ca8317b98439fccfbcc673acaaf8241c1869ceea40f5d585bf"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-win32.whl", hash = "sha256:a00dce2d96587651ef4fa192c17e039e8cfab63087c67e7d263a5533c7dad715"},
+    {file = "MarkupSafe-2.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:007dc055dbce5b1104876acee177dbfd18757e19d562cd440182e1f492e96b95"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a08cd07d3c3c17cd33d9e66ea9dee8f8fc1c48e2d11bd88fd2dc515a602c709b"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:3c352ff634e289061711608f5e474ec38dbaa21e3e168820d53d5f4015e5b91b"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:32200f562daaab472921a11cbb63780f1654552ae49518196fc361ed8e12e901"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:fef86115fdad7ae774720d7103aa776144cf9b66673b4afa9bcaa7af990ed07b"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:e79212d09fc0e224d20b43ad44bb0a0a3416d1e04cf6b45fed265114a5d43d20"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:79b2ae94fa991be023832e6bcc00f41dbc8e5fe9d997a02db965831402551730"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-win32.whl", hash = "sha256:3261fae28155e5c8634dd7710635fe540a05b58f160cef7713c7700cb9980e66"},
+    {file = "MarkupSafe-2.0.0-cp37-cp37m-win_amd64.whl", hash = "sha256:e4570d16f88c7f3032ed909dc9e905a17da14a1c4cfd92608e3fda4cb1208bbd"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8f806bfd0f218477d7c46a11d3e52dc7f5fdfaa981b18202b7dc84bbc287463b"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e77e4b983e2441aff0c0d07ee711110c106b625f440292dfe02a2f60c8218bd6"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:031bf79a27d1c42f69c276d6221172417b47cb4b31cdc73d362a9bf5a1889b9f"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:83cf0228b2f694dcdba1374d5312f2277269d798e65f40344964f642935feac1"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:4cc563836f13c57f1473bc02d1e01fc37bab70ad4ee6be297d58c1d66bc819bf"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:d00a669e4a5bec3ee6dbeeeedd82a405ced19f8aeefb109a012ea88a45afff96"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-win32.whl", hash = "sha256:161d575fa49395860b75da5135162481768b11208490d5a2143ae6785123e77d"},
+    {file = "MarkupSafe-2.0.0-cp38-cp38-win_amd64.whl", hash = "sha256:58bc9fce3e1557d463ef5cee05391a05745fd95ed660f23c1742c711712c0abb"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:3fb47f97f1d338b943126e90b79cad50d4fcfa0b80637b5a9f468941dbbd9ce5"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:dab0c685f21f4a6c95bfc2afd1e7eae0033b403dd3d8c1b6d13a652ada75b348"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:664832fb88b8162268928df233f4b12a144a0c78b01d38b81bdcf0fc96668ecb"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:df561f65049ed3556e5b52541669310e88713fdae2934845ec3606f283337958"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:24bbc3507fb6dfff663af7900a631f2aca90d5a445f272db5fc84999fa5718bc"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:87de598edfa2230ff274c4de7fcf24c73ffd96208c8e1912d5d0fee459767d75"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:a19d39b02a24d3082856a5b06490b714a9d4179321225bbf22809ff1e1887cc8"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-win32.whl", hash = "sha256:4aca81a687975b35e3e80bcf9aa93fe10cd57fac37bf18b2314c186095f57e05"},
+    {file = "MarkupSafe-2.0.0-cp39-cp39-win_amd64.whl", hash = "sha256:70820a1c96311e02449591cbdf5cd1c6a34d5194d5b55094ab725364375c9eb2"},
+    {file = "MarkupSafe-2.0.0.tar.gz", hash = "sha256:4fae0677f712ee090721d8b17f412f1cbceefbf0dc180fe91bab3232f38b4527"},
+]
+matplotlib-inline = [
+    {file = "matplotlib-inline-0.1.2.tar.gz", hash = "sha256:f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e"},
+    {file = "matplotlib_inline-0.1.2-py3-none-any.whl", hash = "sha256:5cf1176f554abb4fa98cb362aa2b55c500147e4bdbb07e3fda359143e1da0811"},
 ]
 mccabe = [
     {file = "mccabe-0.6.1-py2.py3-none-any.whl", hash = "sha256:ab8a6258860da4b6677da4bd2fe5dc2c659cff31b3ee4f7f5d64e79735b80d42"},
@@ -1396,34 +1377,34 @@ mypy-extensions = [
     {file = "mypy_extensions-0.4.3.tar.gz", hash = "sha256:2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"},
 ]
 numpy = [
-    {file = "numpy-1.20.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e9459f40244bb02b2f14f6af0cd0732791d72232bbb0dc4bab57ef88e75f6935"},
-    {file = "numpy-1.20.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:a8e6859913ec8eeef3dbe9aed3bf475347642d1cdd6217c30f28dee8903528e6"},
-    {file = "numpy-1.20.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:9cab23439eb1ebfed1aaec9cd42b7dc50fc96d5cd3147da348d9161f0501ada5"},
-    {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:9c0fab855ae790ca74b27e55240fe4f2a36a364a3f1ebcfd1fb5ac4088f1cec3"},
-    {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:61d5b4cf73622e4d0c6b83408a16631b670fc045afd6540679aa35591a17fe6d"},
-    {file = "numpy-1.20.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d15007f857d6995db15195217afdbddfcd203dfaa0ba6878a2f580eaf810ecd6"},
-    {file = "numpy-1.20.2-cp37-cp37m-win32.whl", hash = "sha256:d76061ae5cab49b83a8cf3feacefc2053fac672728802ac137dd8c4123397677"},
-    {file = "numpy-1.20.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bad70051de2c50b1a6259a6df1daaafe8c480ca98132da98976d8591c412e737"},
-    {file = "numpy-1.20.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:719656636c48be22c23641859ff2419b27b6bdf844b36a2447cb39caceb00935"},
-    {file = "numpy-1.20.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:aa046527c04688af680217fffac61eec2350ef3f3d7320c07fd33f5c6e7b4d5f"},
-    {file = "numpy-1.20.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2428b109306075d89d21135bdd6b785f132a1f5a3260c371cee1fae427e12727"},
-    {file = "numpy-1.20.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e8e4fbbb7e7634f263c5b0150a629342cc19b47c5eba8d1cd4363ab3455ab576"},
-    {file = "numpy-1.20.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:edb1f041a9146dcf02cd7df7187db46ab524b9af2515f392f337c7cbbf5b52cd"},
-    {file = "numpy-1.20.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:c73a7975d77f15f7f68dacfb2bca3d3f479f158313642e8ea9058eea06637931"},
-    {file = "numpy-1.20.2-cp38-cp38-win32.whl", hash = "sha256:6c915ee7dba1071554e70a3664a839fbc033e1d6528199d4621eeaaa5487ccd2"},
-    {file = "numpy-1.20.2-cp38-cp38-win_amd64.whl", hash = "sha256:471c0571d0895c68da309dacee4e95a0811d0a9f9f532a48dc1bea5f3b7ad2b7"},
-    {file = "numpy-1.20.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4703b9e937df83f5b6b7447ca5912b5f5f297aba45f91dbbbc63ff9278c7aa98"},
-    {file = "numpy-1.20.2-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:abc81829c4039e7e4c30f7897938fa5d4916a09c2c7eb9b244b7a35ddc9656f4"},
-    {file = "numpy-1.20.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:377751954da04d4a6950191b20539066b4e19e3b559d4695399c5e8e3e683bf6"},
-    {file = "numpy-1.20.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:6e51e417d9ae2e7848314994e6fc3832c9d426abce9328cf7571eefceb43e6c9"},
-    {file = "numpy-1.20.2-cp39-cp39-win32.whl", hash = "sha256:780ae5284cb770ade51d4b4a7dce4faa554eb1d88a56d0e8b9f35fca9b0270ff"},
-    {file = "numpy-1.20.2-cp39-cp39-win_amd64.whl", hash = "sha256:924dc3f83de20437de95a73516f36e09918e9c9c18d5eac520062c49191025fb"},
-    {file = "numpy-1.20.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:97ce8b8ace7d3b9288d88177e66ee75480fb79b9cf745e91ecfe65d91a856042"},
-    {file = "numpy-1.20.2.zip", hash = "sha256:878922bf5ad7550aa044aa9301d417e2d3ae50f0f577de92051d739ac6096cee"},
+    {file = "numpy-1.20.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:70eb5808127284c4e5c9e836208e09d685a7978b6a216db85960b1a112eeace8"},
+    {file = "numpy-1.20.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6ca2b85a5997dabc38301a22ee43c82adcb53ff660b89ee88dded6b33687e1d8"},
+    {file = "numpy-1.20.3-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c5bf0e132acf7557fc9bb8ded8b53bbbbea8892f3c9a1738205878ca9434206a"},
+    {file = "numpy-1.20.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:db250fd3e90117e0312b611574cd1b3f78bec046783195075cbd7ba9c3d73f16"},
+    {file = "numpy-1.20.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:637d827248f447e63585ca3f4a7d2dfaa882e094df6cfa177cc9cf9cd6cdf6d2"},
+    {file = "numpy-1.20.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:8b7bb4b9280da3b2856cb1fc425932f46fba609819ee1c62256f61799e6a51d2"},
+    {file = "numpy-1.20.3-cp37-cp37m-win32.whl", hash = "sha256:67d44acb72c31a97a3d5d33d103ab06d8ac20770e1c5ad81bdb3f0c086a56cf6"},
+    {file = "numpy-1.20.3-cp37-cp37m-win_amd64.whl", hash = "sha256:43909c8bb289c382170e0282158a38cf306a8ad2ff6dfadc447e90f9961bef43"},
+    {file = "numpy-1.20.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f1452578d0516283c87608a5a5548b0cdde15b99650efdfd85182102ef7a7c17"},
+    {file = "numpy-1.20.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:6e51534e78d14b4a009a062641f465cfaba4fdcb046c3ac0b1f61dd97c861b1b"},
+    {file = "numpy-1.20.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:e515c9a93aebe27166ec9593411c58494fa98e5fcc219e47260d9ab8a1cc7f9f"},
+    {file = "numpy-1.20.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1c09247ccea742525bdb5f4b5ceeacb34f95731647fe55774aa36557dbb5fa4"},
+    {file = "numpy-1.20.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:66fbc6fed94a13b9801fb70b96ff30605ab0a123e775a5e7a26938b717c5d71a"},
+    {file = "numpy-1.20.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:ea9cff01e75a956dbee133fa8e5b68f2f92175233de2f88de3a682dd94deda65"},
+    {file = "numpy-1.20.3-cp38-cp38-win32.whl", hash = "sha256:f39a995e47cb8649673cfa0579fbdd1cdd33ea497d1728a6cb194d6252268e48"},
+    {file = "numpy-1.20.3-cp38-cp38-win_amd64.whl", hash = "sha256:1676b0a292dd3c99e49305a16d7a9f42a4ab60ec522eac0d3dd20cdf362ac010"},
+    {file = "numpy-1.20.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:830b044f4e64a76ba71448fce6e604c0fc47a0e54d8f6467be23749ac2cbd2fb"},
+    {file = "numpy-1.20.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:55b745fca0a5ab738647d0e4db099bd0a23279c32b31a783ad2ccea729e632df"},
+    {file = "numpy-1.20.3-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5d050e1e4bc9ddb8656d7b4f414557720ddcca23a5b88dd7cff65e847864c400"},
+    {file = "numpy-1.20.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9c65473ebc342715cb2d7926ff1e202c26376c0dcaaee85a1fd4b8d8c1d3b2f"},
+    {file = "numpy-1.20.3-cp39-cp39-win32.whl", hash = "sha256:16f221035e8bd19b9dc9a57159e38d2dd060b48e93e1d843c49cb370b0f415fd"},
+    {file = "numpy-1.20.3-cp39-cp39-win_amd64.whl", hash = "sha256:6690080810f77485667bfbff4f69d717c3be25e5b11bb2073e76bb3f578d99b4"},
+    {file = "numpy-1.20.3-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4e465afc3b96dbc80cf4a5273e5e2b1e3451286361b4af70ce1adb2984d392f9"},
+    {file = "numpy-1.20.3.zip", hash = "sha256:e55185e51b18d788e49fe8305fd73ef4470596b33fc2c1ceb304566b99c71a69"},
 ]
 packaging = [
-    {file = "packaging-20.8-py2.py3-none-any.whl", hash = "sha256:24e0da08660a87484d1602c30bb4902d74816b6985b93de36926f5bc95741858"},
-    {file = "packaging-20.8.tar.gz", hash = "sha256:78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"},
+    {file = "packaging-20.9-py2.py3-none-any.whl", hash = "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"},
+    {file = "packaging-20.9.tar.gz", hash = "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5"},
 ]
 parso = [
     {file = "parso-0.8.2-py2.py3-none-any.whl", hash = "sha256:a8c4922db71e4fdb90e0d0bc6e50f9b273d3397925e5e60a717e719201778d22"},
@@ -1434,8 +1415,8 @@ pathspec = [
     {file = "pathspec-0.8.1.tar.gz", hash = "sha256:86379d6b86d75816baba717e64b1a3a3469deb93bb76d613c9ce79edc5cb68fd"},
 ]
 pbr = [
-    {file = "pbr-5.5.1-py2.py3-none-any.whl", hash = "sha256:b236cde0ac9a6aedd5e3c34517b423cd4fd97ef723849da6b0d2231142d89c00"},
-    {file = "pbr-5.5.1.tar.gz", hash = "sha256:5fad80b613c402d5b7df7bd84812548b2a61e9977387a80a5fc5c396492b13c9"},
+    {file = "pbr-5.6.0-py2.py3-none-any.whl", hash = "sha256:c68c661ac5cc81058ac94247278eeda6d2e6aecb3e227b0387c30d277e7ef8d4"},
+    {file = "pbr-5.6.0.tar.gz", hash = "sha256:42df03e7797b796625b1029c0400279c7c34fd7df24a7d7818a1abb5b38710dd"},
 ]
 pexpect = [
     {file = "pexpect-4.8.0-py2.py3-none-any.whl", hash = "sha256:0b48a55dcb3c05f3329815901ea4fc1537514d6ba867a152b581d69ae3710937"},
@@ -1470,45 +1451,41 @@ pycco = [
     {file = "Pycco-0.6.0-py3-none-any.whl", hash = "sha256:f8dae44b65aaab1f6d958200eda542ba4ddd96531245e64fdb793b1b47aa774c"},
     {file = "Pycco-0.6.0.tar.gz", hash = "sha256:70c217ef65946ccb4b76cf1f3a4236601619321046044e163d72ebaccc8ba17e"},
 ]
-pycln = [
-    {file = "pycln-0.0.1-py3-none-any.whl", hash = "sha256:9e127c0e33ec480074083600137158c64dc6b6f1e62ac7fbb540d0cd89723872"},
-    {file = "pycln-0.0.1.tar.gz", hash = "sha256:f5c6e1fcd5f336ec4b204e1ffcfce55982a5dd8b0eca14d5aac362fe1e7001b5"},
-]
 pydantic = [
-    {file = "pydantic-1.7.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c59ea046aea25be14dc22d69c97bee629e6d48d2b2ecb724d7fe8806bf5f61cd"},
-    {file = "pydantic-1.7.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a4143c8d0c456a093387b96e0f5ee941a950992904d88bc816b4f0e72c9a0009"},
-    {file = "pydantic-1.7.3-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:d8df4b9090b595511906fa48deda47af04e7d092318bfb291f4d45dfb6bb2127"},
-    {file = "pydantic-1.7.3-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:514b473d264671a5c672dfb28bdfe1bf1afd390f6b206aa2ec9fed7fc592c48e"},
-    {file = "pydantic-1.7.3-cp36-cp36m-win_amd64.whl", hash = "sha256:dba5c1f0a3aeea5083e75db9660935da90216f8a81b6d68e67f54e135ed5eb23"},
-    {file = "pydantic-1.7.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:59e45f3b694b05a69032a0d603c32d453a23f0de80844fb14d55ab0c6c78ff2f"},
-    {file = "pydantic-1.7.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:5b24e8a572e4b4c18f614004dda8c9f2c07328cb5b6e314d6e1bbd536cb1a6c1"},
-    {file = "pydantic-1.7.3-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:b2b054d095b6431cdda2f852a6d2f0fdec77686b305c57961b4c5dd6d863bf3c"},
-    {file = "pydantic-1.7.3-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:025bf13ce27990acc059d0c5be46f416fc9b293f45363b3d19855165fee1874f"},
-    {file = "pydantic-1.7.3-cp37-cp37m-win_amd64.whl", hash = "sha256:6e3874aa7e8babd37b40c4504e3a94cc2023696ced5a0500949f3347664ff8e2"},
-    {file = "pydantic-1.7.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e682f6442ebe4e50cb5e1cfde7dda6766fb586631c3e5569f6aa1951fd1a76ef"},
-    {file = "pydantic-1.7.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:185e18134bec5ef43351149fe34fda4758e53d05bb8ea4d5928f0720997b79ef"},
-    {file = "pydantic-1.7.3-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:f5b06f5099e163295b8ff5b1b71132ecf5866cc6e7f586d78d7d3fd6e8084608"},
-    {file = "pydantic-1.7.3-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:24ca47365be2a5a3cc3f4a26dcc755bcdc9f0036f55dcedbd55663662ba145ec"},
-    {file = "pydantic-1.7.3-cp38-cp38-win_amd64.whl", hash = "sha256:d1fe3f0df8ac0f3a9792666c69a7cd70530f329036426d06b4f899c025aca74e"},
-    {file = "pydantic-1.7.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f6864844b039805add62ebe8a8c676286340ba0c6d043ae5dea24114b82a319e"},
-    {file = "pydantic-1.7.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:ecb54491f98544c12c66ff3d15e701612fc388161fd455242447083350904730"},
-    {file = "pydantic-1.7.3-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:ffd180ebd5dd2a9ac0da4e8b995c9c99e7c74c31f985ba090ee01d681b1c4b95"},
-    {file = "pydantic-1.7.3-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:8d72e814c7821125b16f1553124d12faba88e85405b0864328899aceaad7282b"},
-    {file = "pydantic-1.7.3-cp39-cp39-win_amd64.whl", hash = "sha256:475f2fa134cf272d6631072554f845d0630907fce053926ff634cc6bc45bf1af"},
-    {file = "pydantic-1.7.3-py3-none-any.whl", hash = "sha256:38be427ea01a78206bcaf9a56f835784afcba9e5b88fbdce33bbbfbcd7841229"},
-    {file = "pydantic-1.7.3.tar.gz", hash = "sha256:213125b7e9e64713d16d988d10997dabc6a1f73f3991e1ff8e35ebb1409c7dc9"},
+    {file = "pydantic-1.8.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:05ddfd37c1720c392f4e0d43c484217b7521558302e7069ce8d318438d297739"},
+    {file = "pydantic-1.8.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a7c6002203fe2c5a1b5cbb141bb85060cbff88c2d78eccbc72d97eb7022c43e4"},
+    {file = "pydantic-1.8.2-cp36-cp36m-manylinux2014_i686.whl", hash = "sha256:589eb6cd6361e8ac341db97602eb7f354551482368a37f4fd086c0733548308e"},
+    {file = "pydantic-1.8.2-cp36-cp36m-manylinux2014_x86_64.whl", hash = "sha256:10e5622224245941efc193ad1d159887872776df7a8fd592ed746aa25d071840"},
+    {file = "pydantic-1.8.2-cp36-cp36m-win_amd64.whl", hash = "sha256:99a9fc39470010c45c161a1dc584997f1feb13f689ecf645f59bb4ba623e586b"},
+    {file = "pydantic-1.8.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a83db7205f60c6a86f2c44a61791d993dff4b73135df1973ecd9eed5ea0bda20"},
+    {file = "pydantic-1.8.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:41b542c0b3c42dc17da70554bc6f38cbc30d7066d2c2815a94499b5684582ecb"},
+    {file = "pydantic-1.8.2-cp37-cp37m-manylinux2014_i686.whl", hash = "sha256:ea5cb40a3b23b3265f6325727ddfc45141b08ed665458be8c6285e7b85bd73a1"},
+    {file = "pydantic-1.8.2-cp37-cp37m-manylinux2014_x86_64.whl", hash = "sha256:18b5ea242dd3e62dbf89b2b0ec9ba6c7b5abaf6af85b95a97b00279f65845a23"},
+    {file = "pydantic-1.8.2-cp37-cp37m-win_amd64.whl", hash = "sha256:234a6c19f1c14e25e362cb05c68afb7f183eb931dd3cd4605eafff055ebbf287"},
+    {file = "pydantic-1.8.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:021ea0e4133e8c824775a0cfe098677acf6fa5a3cbf9206a376eed3fc09302cd"},
+    {file = "pydantic-1.8.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e710876437bc07bd414ff453ac8ec63d219e7690128d925c6e82889d674bb505"},
+    {file = "pydantic-1.8.2-cp38-cp38-manylinux2014_i686.whl", hash = "sha256:ac8eed4ca3bd3aadc58a13c2aa93cd8a884bcf21cb019f8cfecaae3b6ce3746e"},
+    {file = "pydantic-1.8.2-cp38-cp38-manylinux2014_x86_64.whl", hash = "sha256:4a03cbbe743e9c7247ceae6f0d8898f7a64bb65800a45cbdc52d65e370570820"},
+    {file = "pydantic-1.8.2-cp38-cp38-win_amd64.whl", hash = "sha256:8621559dcf5afacf0069ed194278f35c255dc1a1385c28b32dd6c110fd6531b3"},
+    {file = "pydantic-1.8.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8b223557f9510cf0bfd8b01316bf6dd281cf41826607eada99662f5e4963f316"},
+    {file = "pydantic-1.8.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:244ad78eeb388a43b0c927e74d3af78008e944074b7d0f4f696ddd5b2af43c62"},
+    {file = "pydantic-1.8.2-cp39-cp39-manylinux2014_i686.whl", hash = "sha256:05ef5246a7ffd2ce12a619cbb29f3307b7c4509307b1b49f456657b43529dc6f"},
+    {file = "pydantic-1.8.2-cp39-cp39-manylinux2014_x86_64.whl", hash = "sha256:54cd5121383f4a461ff7644c7ca20c0419d58052db70d8791eacbbe31528916b"},
+    {file = "pydantic-1.8.2-cp39-cp39-win_amd64.whl", hash = "sha256:4be75bebf676a5f0f87937c6ddb061fa39cbea067240d98e298508c1bda6f3f3"},
+    {file = "pydantic-1.8.2-py3-none-any.whl", hash = "sha256:fec866a0b59f372b7e776f2d7308511784dace622e0992a0b59ea3ccee0ae833"},
+    {file = "pydantic-1.8.2.tar.gz", hash = "sha256:26464e57ccaafe72b7ad156fdaa4e9b9ef051f69e175dbbb463283000c05ab7b"},
 ]
 pydash = [
     {file = "pydash-4.9.3-py2.py3-none-any.whl", hash = "sha256:7851a2d749e70c02585ae4803b01c5e0f47b7ec9df9b84ccb16aac38cad2fdd2"},
     {file = "pydash-4.9.3.tar.gz", hash = "sha256:d709e57b537b1aaf118f188da3ec6242a665090ecd7839b66f857ee3dc2bb006"},
 ]
 pygments = [
-    {file = "Pygments-2.7.4-py3-none-any.whl", hash = "sha256:bc9591213a8f0e0ca1a5e68a479b4887fdc3e75d0774e5c71c31920c427de435"},
-    {file = "Pygments-2.7.4.tar.gz", hash = "sha256:df49d09b498e83c1a73128295860250b0b7edd4c723a32e9bc0d295c7c2ec337"},
+    {file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"},
+    {file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"},
 ]
 pylint = [
-    {file = "pylint-2.6.0-py3-none-any.whl", hash = "sha256:bfe68f020f8a0fece830a22dd4d5dddb4ecc6137db04face4c3420a46a52239f"},
-    {file = "pylint-2.6.0.tar.gz", hash = "sha256:bb4a908c9dadbc3aac18860550e870f58e1a02c9f2c204fdf5693d73be061210"},
+    {file = "pylint-2.8.2-py3-none-any.whl", hash = "sha256:f7e2072654a6b6afdf5e2fb38147d3e2d2d43c89f648637baab63e026481279b"},
+    {file = "pylint-2.8.2.tar.gz", hash = "sha256:586d8fa9b1891f4b725f587ef267abe2a1bad89d6b184520c7f07a253dd6e217"},
 ]
 pyparsing = [
     {file = "pyparsing-2.4.7-py2.py3-none-any.whl", hash = "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"},
@@ -1527,12 +1504,12 @@ pystache = [
     {file = "pystache-0.5.4.tar.gz", hash = "sha256:f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a"},
 ]
 pytest = [
-    {file = "pytest-6.2.1-py3-none-any.whl", hash = "sha256:1969f797a1a0dbd8ccf0fecc80262312729afea9c17f1d70ebf85c5e76c6f7c8"},
-    {file = "pytest-6.2.1.tar.gz", hash = "sha256:66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306"},
+    {file = "pytest-6.2.4-py3-none-any.whl", hash = "sha256:91ef2131a9bd6be8f76f1f08eac5c5317221d6ad1e143ae03894b862e8976890"},
+    {file = "pytest-6.2.4.tar.gz", hash = "sha256:50bcad0a0b9c5a72c8e4e7c9855a3ad496ca6a881a3641b4260605450772c54b"},
 ]
 pytest-cov = [
-    {file = "pytest-cov-2.10.1.tar.gz", hash = "sha256:47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e"},
-    {file = "pytest_cov-2.10.1-py2.py3-none-any.whl", hash = "sha256:45ec2d5182f89a81fc3eb29e3d1ed3113b9e9a873bcddb2a71faaab066110191"},
+    {file = "pytest-cov-2.11.1.tar.gz", hash = "sha256:359952d9d39b9f822d9d29324483e7ba04a3a17dd7d05aa6beb7ea01e359e5f7"},
+    {file = "pytest_cov-2.11.1-py2.py3-none-any.whl", hash = "sha256:bdb9fdb0b85a7cc825269a4c56b48ccaa5c7e365054b6038772c32ddcdc969da"},
 ]
 python-dateutil = [
     {file = "python-dateutil-2.8.1.tar.gz", hash = "sha256:73ebfe9dbf22e832286dafa60473e4cd239f8592f699aa5adaf10050e6e1823c"},
@@ -1555,19 +1532,35 @@ pywin32 = [
     {file = "pywin32-300-cp39-cp39-win_amd64.whl", hash = "sha256:b1609ce9bd5c411b81f941b246d683d6508992093203d4eb7f278f4ed1085c3f"},
 ]
 pyyaml = [
-    {file = "PyYAML-5.3.1-cp27-cp27m-win32.whl", hash = "sha256:74809a57b329d6cc0fdccee6318f44b9b8649961fa73144a98735b0aaf029f1f"},
-    {file = "PyYAML-5.3.1-cp27-cp27m-win_amd64.whl", hash = "sha256:240097ff019d7c70a4922b6869d8a86407758333f02203e0fc6ff79c5dcede76"},
-    {file = "PyYAML-5.3.1-cp35-cp35m-win32.whl", hash = "sha256:4f4b913ca1a7319b33cfb1369e91e50354d6f07a135f3b901aca02aa95940bd2"},
-    {file = "PyYAML-5.3.1-cp35-cp35m-win_amd64.whl", hash = "sha256:cc8955cfbfc7a115fa81d85284ee61147059a753344bc51098f3ccd69b0d7e0c"},
-    {file = "PyYAML-5.3.1-cp36-cp36m-win32.whl", hash = "sha256:7739fc0fa8205b3ee8808aea45e968bc90082c10aef6ea95e855e10abf4a37b2"},
-    {file = "PyYAML-5.3.1-cp36-cp36m-win_amd64.whl", hash = "sha256:69f00dca373f240f842b2931fb2c7e14ddbacd1397d57157a9b005a6a9942648"},
-    {file = "PyYAML-5.3.1-cp37-cp37m-win32.whl", hash = "sha256:d13155f591e6fcc1ec3b30685d50bf0711574e2c0dfffd7644babf8b5102ca1a"},
-    {file = "PyYAML-5.3.1-cp37-cp37m-win_amd64.whl", hash = "sha256:73f099454b799e05e5ab51423c7bcf361c58d3206fa7b0d555426b1f4d9a3eaf"},
-    {file = "PyYAML-5.3.1-cp38-cp38-win32.whl", hash = "sha256:06a0d7ba600ce0b2d2fe2e78453a470b5a6e000a985dd4a4e54e436cc36b0e97"},
-    {file = "PyYAML-5.3.1-cp38-cp38-win_amd64.whl", hash = "sha256:95f71d2af0ff4227885f7a6605c37fd53d3a106fcab511b8860ecca9fcf400ee"},
-    {file = "PyYAML-5.3.1-cp39-cp39-win32.whl", hash = "sha256:ad9c67312c84def58f3c04504727ca879cb0013b2517c85a9a253f0cb6380c0a"},
-    {file = "PyYAML-5.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:6034f55dab5fea9e53f436aa68fa3ace2634918e8b5994d82f3621c04ff5ed2e"},
-    {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:3b2b1824fe7112845700f815ff6a489360226a5609b96ec2190a45e62a9fc922"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-win32.whl", hash = "sha256:129def1b7c1bf22faffd67b8f3724645203b79d8f4cc81f674654d9902cb4393"},
+    {file = "PyYAML-5.4.1-cp27-cp27m-win_amd64.whl", hash = "sha256:4465124ef1b18d9ace298060f4eccc64b0850899ac4ac53294547536533800c8"},
+    {file = "PyYAML-5.4.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:bb4191dfc9306777bc594117aee052446b3fa88737cd13b7188d0e7aa8162185"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:6c78645d400265a062508ae399b60b8c167bf003db364ecb26dcab2bda048253"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:4e0583d24c881e14342eaf4ec5fbc97f934b999a6828693a99157fde912540cc"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:72a01f726a9c7851ca9bfad6fd09ca4e090a023c00945ea05ba1638c09dc3347"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-manylinux2014_s390x.whl", hash = "sha256:895f61ef02e8fed38159bb70f7e100e00f471eae2bc838cd0f4ebb21e28f8541"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-win32.whl", hash = "sha256:3bd0e463264cf257d1ffd2e40223b197271046d09dadf73a0fe82b9c1fc385a5"},
+    {file = "PyYAML-5.4.1-cp36-cp36m-win_amd64.whl", hash = "sha256:e4fac90784481d221a8e4b1162afa7c47ed953be40d31ab4629ae917510051df"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:5accb17103e43963b80e6f837831f38d314a0495500067cb25afab2e8d7a4018"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:e1d4970ea66be07ae37a3c2e48b5ec63f7ba6804bdddfdbd3cfd954d25a82e63"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:cb333c16912324fd5f769fff6bc5de372e9e7a202247b48870bc251ed40239aa"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-manylinux2014_s390x.whl", hash = "sha256:fe69978f3f768926cfa37b867e3843918e012cf83f680806599ddce33c2c68b0"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-win32.whl", hash = "sha256:dd5de0646207f053eb0d6c74ae45ba98c3395a571a2891858e87df7c9b9bd51b"},
+    {file = "PyYAML-5.4.1-cp37-cp37m-win_amd64.whl", hash = "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf"},
+    {file = "PyYAML-5.4.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2d9808ea7b4af864f35ea216be506ecec180628aced0704e34aca0b040ffe46"},
+    {file = "PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8c1be557ee92a20f184922c7b6424e8ab6691788e6d86137c5d93c1a6ec1b8fb"},
+    {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:fd7f6999a8070df521b6384004ef42833b9bd62cfee11a09bda1079b4b704247"},
+    {file = "PyYAML-5.4.1-cp38-cp38-manylinux2014_s390x.whl", hash = "sha256:bfb51918d4ff3d77c1c856a9699f8492c612cde32fd3bcd344af9be34999bfdc"},
+    {file = "PyYAML-5.4.1-cp38-cp38-win32.whl", hash = "sha256:fa5ae20527d8e831e8230cbffd9f8fe952815b2b7dae6ffec25318803a7528fc"},
+    {file = "PyYAML-5.4.1-cp38-cp38-win_amd64.whl", hash = "sha256:0f5f5786c0e09baddcd8b4b45f20a7b5d61a7e7e99846e3c799b05c7c53fa696"},
+    {file = "PyYAML-5.4.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:294db365efa064d00b8d1ef65d8ea2c3426ac366c0c4368d930bf1c5fb497f77"},
+    {file = "PyYAML-5.4.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:74c1485f7707cf707a7aef42ef6322b8f97921bd89be2ab6317fd782c2d53183"},
+    {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:d483ad4e639292c90170eb6f7783ad19490e7a8defb3e46f97dfe4bacae89122"},
+    {file = "PyYAML-5.4.1-cp39-cp39-manylinux2014_s390x.whl", hash = "sha256:fdc842473cd33f45ff6bce46aea678a54e3d21f1b61a7750ce3c498eedfe25d6"},
+    {file = "PyYAML-5.4.1-cp39-cp39-win32.whl", hash = "sha256:49d4cdd9065b9b6e206d0595fee27a96b5dd22618e7520c33204a4a3239d5b10"},
+    {file = "PyYAML-5.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:c20cfa2d49991c8b4147af39859b167664f2ad4561704ee74c1de03318e898db"},
+    {file = "PyYAML-5.4.1.tar.gz", hash = "sha256:607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e"},
 ]
 pyyaml-include = [
     {file = "pyyaml-include-1.2.post2.tar.gz", hash = "sha256:60047fc0a186debb9c80b3c3a23ef73b0096f6ee4ab2124b29d642c3fea0aebe"},
@@ -1624,15 +1617,15 @@ rope = [
     {file = "rope-0.18.0.tar.gz", hash = "sha256:786b5c38c530d4846aa68a42604f61b4e69a493390e3ca11b88df0fbfdc3ed04"},
 ]
 six = [
-    {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"},
-    {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"},
+    {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"},
+    {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
 ]
 smartypants = [
     {file = "smartypants-2.0.1-py2.py3-none-any.whl", hash = "sha256:8db97f7cbdf08d15b158a86037cd9e116b4cf37703d24e0419a0d64ca5808f0d"},
 ]
 smmap = [
-    {file = "smmap-3.0.4-py2.py3-none-any.whl", hash = "sha256:54c44c197c819d5ef1991799a7e30b662d1e520f2ac75c9efbeb54a742214cf4"},
-    {file = "smmap-3.0.4.tar.gz", hash = "sha256:9c98bbd1f9786d22f14b3d4126894d56befb835ec90cef151af566c7e19b5d24"},
+    {file = "smmap-4.0.0-py2.py3-none-any.whl", hash = "sha256:a9a7479e4c572e2e775c404dcd3080c8dc49f39918c2cf74913d30c4c478e3c2"},
+    {file = "smmap-4.0.0.tar.gz", hash = "sha256:7e65386bd122d45405ddf795637b7f7d2b532e7e401d46bbe3fb49b9986d5182"},
 ]
 snowballstemmer = [
     {file = "snowballstemmer-2.1.0-py2.py3-none-any.whl", hash = "sha256:b51b447bea85f9968c13b650126a888aabd4cb4463fca868ec596826325dedc2"},
@@ -1643,8 +1636,8 @@ soupsieve = [
     {file = "soupsieve-2.2.1.tar.gz", hash = "sha256:052774848f448cf19c7e959adf5566904d525f33a3f8b6ba6f6f8f26ec7de0cc"},
 ]
 sphinx = [
-    {file = "Sphinx-3.5.3-py3-none-any.whl", hash = "sha256:3f01732296465648da43dec8fb40dc451ba79eb3e2cc5c6d79005fd98197107d"},
-    {file = "Sphinx-3.5.3.tar.gz", hash = "sha256:ce9c228456131bab09a3d7d10ae58474de562a6f79abb3dc811ae401cf8c1abc"},
+    {file = "Sphinx-3.5.4-py3-none-any.whl", hash = "sha256:2320d4e994a191f4b4be27da514e46b3d6b420f2ff895d064f52415d342461e8"},
+    {file = "Sphinx-3.5.4.tar.gz", hash = "sha256:19010b7b9fa0dc7756a6e105b2aacd3a80f798af3c25c273be64d7beeb482cb1"},
 ]
 sphinx-copybutton = [
     {file = "sphinx-copybutton-0.3.1.tar.gz", hash = "sha256:0e0461df394515284e3907e3f418a0c60ef6ab6c9a27a800c8552772d0a402a2"},
@@ -1687,54 +1680,45 @@ traitlets = [
     {file = "traitlets-5.0.5.tar.gz", hash = "sha256:178f4ce988f69189f7e523337a3e11d91c786ded9360174a3d9ca83e79bc5396"},
 ]
 typed-ast = [
-    {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:7703620125e4fb79b64aa52427ec192822e9f45d37d4b6625ab37ef403e1df70"},
-    {file = "typed_ast-1.4.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c9aadc4924d4b5799112837b226160428524a9a45f830e0d0f184b19e4090487"},
-    {file = "typed_ast-1.4.2-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:9ec45db0c766f196ae629e509f059ff05fc3148f9ffd28f3cfe75d4afb485412"},
-    {file = "typed_ast-1.4.2-cp35-cp35m-win32.whl", hash = "sha256:85f95aa97a35bdb2f2f7d10ec5bbdac0aeb9dafdaf88e17492da0504de2e6400"},
-    {file = "typed_ast-1.4.2-cp35-cp35m-win_amd64.whl", hash = "sha256:9044ef2df88d7f33692ae3f18d3be63dec69c4fb1b5a4a9ac950f9b4ba571606"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:c1c876fd795b36126f773db9cbb393f19808edd2637e00fd6caba0e25f2c7b64"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:5dcfc2e264bd8a1db8b11a892bd1647154ce03eeba94b461effe68790d8b8e07"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8db0e856712f79c45956da0c9a40ca4246abc3485ae0d7ecc86a20f5e4c09abc"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:d003156bb6a59cda9050e983441b7fa2487f7800d76bdc065566b7d728b4581a"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-win32.whl", hash = "sha256:4c790331247081ea7c632a76d5b2a265e6d325ecd3179d06e9cf8d46d90dd151"},
-    {file = "typed_ast-1.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:d175297e9533d8d37437abc14e8a83cbc68af93cc9c1c59c2c292ec59a0697a3"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cf54cfa843f297991b7388c281cb3855d911137223c6b6d2dd82a47ae5125a41"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:b4fcdcfa302538f70929eb7b392f536a237cbe2ed9cba88e3bf5027b39f5f77f"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:987f15737aba2ab5f3928c617ccf1ce412e2e321c77ab16ca5a293e7bbffd581"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:37f48d46d733d57cc70fd5f30572d11ab8ed92da6e6b28e024e4a3edfb456e37"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-win32.whl", hash = "sha256:36d829b31ab67d6fcb30e185ec996e1f72b892255a745d3a82138c97d21ed1cd"},
-    {file = "typed_ast-1.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:8368f83e93c7156ccd40e49a783a6a6850ca25b556c0fa0240ed0f659d2fe496"},
-    {file = "typed_ast-1.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:963c80b583b0661918718b095e02303d8078950b26cc00b5e5ea9ababe0de1fc"},
-    {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:e683e409e5c45d5c9082dc1daf13f6374300806240719f95dc783d1fc942af10"},
-    {file = "typed_ast-1.4.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:84aa6223d71012c68d577c83f4e7db50d11d6b1399a9c779046d75e24bed74ea"},
-    {file = "typed_ast-1.4.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:a38878a223bdd37c9709d07cd357bb79f4c760b29210e14ad0fb395294583787"},
-    {file = "typed_ast-1.4.2-cp38-cp38-win32.whl", hash = "sha256:a2c927c49f2029291fbabd673d51a2180038f8cd5a5b2f290f78c4516be48be2"},
-    {file = "typed_ast-1.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:c0c74e5579af4b977c8b932f40a5464764b2f86681327410aa028a22d2f54937"},
-    {file = "typed_ast-1.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:07d49388d5bf7e863f7fa2f124b1b1d89d8aa0e2f7812faff0a5658c01c59aa1"},
-    {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:240296b27397e4e37874abb1df2a608a92df85cf3e2a04d0d4d61055c8305ba6"},
-    {file = "typed_ast-1.4.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:d746a437cdbca200622385305aedd9aef68e8a645e385cc483bdc5e488f07166"},
-    {file = "typed_ast-1.4.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:14bf1522cdee369e8f5581238edac09150c765ec1cb33615855889cf33dcb92d"},
-    {file = "typed_ast-1.4.2-cp39-cp39-win32.whl", hash = "sha256:cc7b98bf58167b7f2db91a4327da24fb93368838eb84a44c472283778fc2446b"},
-    {file = "typed_ast-1.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:7147e2a76c75f0f64c4319886e7639e490fee87c9d25cb1d4faef1d8cf83a440"},
-    {file = "typed_ast-1.4.2.tar.gz", hash = "sha256:9fc0b3cb5d1720e7141d103cf4819aea239f7d136acf9ee4a69b047b7986175a"},
-]
-typer = [
-    {file = "typer-0.3.2-py3-none-any.whl", hash = "sha256:ba58b920ce851b12a2d790143009fa00ac1d05b3ff3257061ff69dbdfc3d161b"},
-    {file = "typer-0.3.2.tar.gz", hash = "sha256:5455d750122cff96745b0dec87368f56d023725a7ebc9d2e54dd23dc86816303"},
+    {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:2068531575a125b87a41802130fa7e29f26c09a2833fea68d9a40cf33902eba6"},
+    {file = "typed_ast-1.4.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:c907f561b1e83e93fad565bac5ba9c22d96a54e7ea0267c708bffe863cbe4075"},
+    {file = "typed_ast-1.4.3-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:1b3ead4a96c9101bef08f9f7d1217c096f31667617b58de957f690c92378b528"},
+    {file = "typed_ast-1.4.3-cp35-cp35m-win32.whl", hash = "sha256:dde816ca9dac1d9c01dd504ea5967821606f02e510438120091b84e852367428"},
+    {file = "typed_ast-1.4.3-cp35-cp35m-win_amd64.whl", hash = "sha256:777a26c84bea6cd934422ac2e3b78863a37017618b6e5c08f92ef69853e765d3"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:f8afcf15cc511ada719a88e013cec87c11aff7b91f019295eb4530f96fe5ef2f"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:52b1eb8c83f178ab787f3a4283f68258525f8d70f778a2f6dd54d3b5e5fb4341"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:01ae5f73431d21eead5015997ab41afa53aa1fbe252f9da060be5dad2c730ace"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c190f0899e9f9f8b6b7863debfb739abcb21a5c054f911ca3596d12b8a4c4c7f"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-win32.whl", hash = "sha256:398e44cd480f4d2b7ee8d98385ca104e35c81525dd98c519acff1b79bdaac363"},
+    {file = "typed_ast-1.4.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bff6ad71c81b3bba8fa35f0f1921fb24ff4476235a6e94a26ada2e54370e6da7"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0fb71b8c643187d7492c1f8352f2c15b4c4af3f6338f21681d3681b3dc31a266"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:760ad187b1041a154f0e4d0f6aae3e40fdb51d6de16e5c99aedadd9246450e9e"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5feca99c17af94057417d744607b82dd0a664fd5e4ca98061480fd8b14b18d04"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:95431a26309a21874005845c21118c83991c63ea800dd44843e42a916aec5899"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-win32.whl", hash = "sha256:aee0c1256be6c07bd3e1263ff920c325b59849dc95392a05f258bb9b259cf39c"},
+    {file = "typed_ast-1.4.3-cp37-cp37m-win_amd64.whl", hash = "sha256:9ad2c92ec681e02baf81fdfa056fe0d818645efa9af1f1cd5fd6f1bd2bdfd805"},
+    {file = "typed_ast-1.4.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b36b4f3920103a25e1d5d024d155c504080959582b928e91cb608a65c3a49e1a"},
+    {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:067a74454df670dcaa4e59349a2e5c81e567d8d65458d480a5b3dfecec08c5ff"},
+    {file = "typed_ast-1.4.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:7538e495704e2ccda9b234b82423a4038f324f3a10c43bc088a1636180f11a41"},
+    {file = "typed_ast-1.4.3-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:af3d4a73793725138d6b334d9d247ce7e5f084d96284ed23f22ee626a7b88e39"},
+    {file = "typed_ast-1.4.3-cp38-cp38-win32.whl", hash = "sha256:f2362f3cb0f3172c42938946dbc5b7843c2a28aec307c49100c8b38764eb6927"},
+    {file = "typed_ast-1.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:dd4a21253f42b8d2b48410cb31fe501d32f8b9fbeb1f55063ad102fe9c425e40"},
+    {file = "typed_ast-1.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:f328adcfebed9f11301eaedfa48e15bdece9b519fb27e6a8c01aa52a17ec31b3"},
+    {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_i686.whl", hash = "sha256:2c726c276d09fc5c414693a2de063f521052d9ea7c240ce553316f70656c84d4"},
+    {file = "typed_ast-1.4.3-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:cae53c389825d3b46fb37538441f75d6aecc4174f615d048321b716df2757fb0"},
+    {file = "typed_ast-1.4.3-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:b9574c6f03f685070d859e75c7f9eeca02d6933273b5e69572e5ff9d5e3931c3"},
+    {file = "typed_ast-1.4.3-cp39-cp39-win32.whl", hash = "sha256:209596a4ec71d990d71d5e0d312ac935d86930e6eecff6ccc7007fe54d703808"},
+    {file = "typed_ast-1.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:9c6d1a54552b5330bc657b7ef0eae25d00ba7ffe85d9ea8ae6540d2197a3788c"},
+    {file = "typed_ast-1.4.3.tar.gz", hash = "sha256:fb1bbeac803adea29cedd70781399c99138358c26d05fcbd23c13016b7f5ec65"},
 ]
 typing-extensions = [
-    {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"},
-    {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"},
-    {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"},
-]
-typing-inspect = [
-    {file = "typing_inspect-0.6.0-py2-none-any.whl", hash = "sha256:de08f50a22955ddec353876df7b2545994d6df08a2f45d54ac8c05e530372ca0"},
-    {file = "typing_inspect-0.6.0-py3-none-any.whl", hash = "sha256:3b98390df4d999a28cf5b35d8b333425af5da2ece8a4ea9e98f71e7591347b4f"},
-    {file = "typing_inspect-0.6.0.tar.gz", hash = "sha256:8f1b1dd25908dbfd81d3bebc218011531e7ab614ba6e5bf7826d887c834afab7"},
+    {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"},
+    {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"},
+    {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"},
 ]
 urllib3 = [
-    {file = "urllib3-1.26.2-py2.py3-none-any.whl", hash = "sha256:d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473"},
-    {file = "urllib3-1.26.2.tar.gz", hash = "sha256:19188f96923873c92ccb987120ec4acaa12f0461fa9ce5d3d0772bc965a39e08"},
+    {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"},
+    {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"},
 ]
 watchdog = [
     {file = "watchdog-1.0.2-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e2a531e71be7b5cc3499ae2d1494d51b6a26684bcc7c3146f63c810c00e8a3cc"},
@@ -1762,3 +1746,7 @@ wcwidth = [
 wrapt = [
     {file = "wrapt-1.12.1.tar.gz", hash = "sha256:b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7"},
 ]
+zipp = [
+    {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"},
+    {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"},
+]
diff --git a/pyproject.toml b/pyproject.toml
index 97fc70e4..6283f2a0 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,11 +1,11 @@
 [tool.poetry]
 name = "dialogy"
-version = "0.5.5"
+version = "0.5.6"
 description = "Language understanding for human dialog."
 authors = ["Amresh Venugopal <amresh.venugopal@gmail.com>"]
 
 [tool.poetry.dependencies]
-python = ">=3.8,<3.10"
+python = "^3.7"
 coloredlogs = "^15.0"
 attrs = "^20.3.0"
 requests = "^2.25.1"
@@ -33,7 +33,6 @@ sphinx = "^3.5.3"
 furo = "^2021.4.11-beta.34"
 sphinx-copybutton = "^0.3.1"
 ipython = "^7.22.0"
-pycln = "^0.0.1"
 
 [tool.poetry.scripts]
 dialogy = "dialogy.cli:main"


Test patch:
diff --git a/tests/plugin/test_plugins.py b/tests/plugin/test_plugins.py
index 22a50b0a..0a587861 100644
--- a/tests/plugin/test_plugins.py
+++ b/tests/plugin/test_plugins.py
@@ -4,8 +4,6 @@
 import re
 from typing import Any, Optional
 
-import attr
-
 from dialogy.plugin import Plugin
 from dialogy.types.plugin import PluginFn
 from dialogy.workflow import Workflow
@@ -91,7 +89,6 @@ def test_tokenizer_plugin() -> None:
 
 
 # == ArbitraryPlugin ==
-@attr.s
 class ArbitraryPlugin(Plugin):
     """
     A Plugin class example.
@@ -108,11 +105,15 @@ class ArbitraryPlugin(Plugin):
     can be avoided by expecting either of the functions to be of type `NoneType` or `PluginFn`.
     """
 
-    access: Optional[PluginFn] = attr.ib(default=None)
-    mutate: Optional[PluginFn] = attr.ib(default=None)
+    def __init__(
+        self,
+        access: Optional[PluginFn] = None,
+        mutate: Optional[PluginFn] = None,
+        debug=False,
+    ):
+        super().__init__(access=access, mutate=mutate, debug=debug)
 
-    # === plugin ===
-    def plugin(self, workflow: Workflow) -> None:
+    def utility(self, numbers, words) -> Any:
         """
         Expects a tuple from `access(workflow)` that contains numbers and words.
 
@@ -137,29 +138,9 @@ def plugin(self, workflow: Workflow) -> None:
 
         - workflow (Workflow): The workflow we possibly want to modify.
         """
-        if self.access and self.mutate:
-            # We are expecting numbers and words from the workflow.
-            # The owner of the workflow defines the access and mutate methods, so
-            # as a plugin author, you can document the input and output types and
-            # expect things to work.
-            numbers, words = self.access(workflow)
-
-            # Trivial data manipulation. A serious example would have been canonicalization
-            # of sentences to replace tokens with classes they represent for improving
-            # performance in a classification task.
-            numbers = [number + 2 for number in numbers]
-            words = [word + " world" for word in words]
-            self.mutate(workflow, (numbers, words))
-        else:
-            raise TypeError("access and mutate should be of type PluginFn.")
-
-    # === __call__ ===
-    def __call__(self) -> PluginFn:
-        # this is required only for code-coverage.
-        super().__call__()
-
-        # return the plugin method.
-        return self.plugin
+        numbers = [number + 2 for number in numbers]
+        words = [word + " world" for word in words]
+        return numbers, words
 
 
 # == Plugin as a class with workflow ==
@@ -183,3 +164,8 @@ def test_arbitrary_plugin() -> None:
     # This test would pass only if our plugin works correctly!
     assert numbers == [4, 7]
     assert words == ["hello world", "hi world"]
+
+
+def test_raw_plugin() -> None:
+    plugin = Plugin(access=access, mutate=mutate)
+    assert plugin.utility() is None
diff --git a/tests/preprocess/text/test_duckling_plugin.py b/tests/preprocess/text/test_duckling_plugin.py
index 56114d17..35691fc0 100644
--- a/tests/preprocess/text/test_duckling_plugin.py
+++ b/tests/preprocess/text/test_duckling_plugin.py
@@ -19,7 +19,7 @@ def test_plugin_with_custom_entity_map() -> None:
         locale="en_IN",
         timezone="Asia/Kolkata",
         dimensions=["time"],
-        custom_entity_map={"number": {"value": BaseEntity}},
+        entity_map={"number": {"value": BaseEntity}},
     )
     assert parser.dimension_entity_map["number"]["value"] == BaseEntity
 
@@ -73,7 +73,7 @@ def test_plugin_io_type_mismatch(access, mutate) -> None:
 @pytest.mark.parametrize("payload", load_tests("cases", __file__))
 def test_plugin_working_cases(payload) -> None:
     """
-    An end-to-end example showing how to use `DucklingPlugin` with a `Worflow`.
+    An end-to-end example showing how to use `DucklingPlugin` with a `Workflow`.
     """
     body = payload["input"]
     mock_entity_json = payload["mock_entity_json"]
diff --git a/tests/preprocess/text/test_list_entity_plugin/__init__.py b/tests/preprocess/text/test_list_entity_plugin/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/preprocess/text/test_list_entity_plugin/test___init__.py b/tests/preprocess/text/test_list_entity_plugin/test___init__.py
new file mode 100644
index 00000000..7cd733de
--- /dev/null
+++ b/tests/preprocess/text/test_list_entity_plugin/test___init__.py
@@ -0,0 +1,97 @@
+import pytest
+
+from dialogy.preprocess.text.list_entity_plugin import ListEntityPlugin
+from dialogy.workflow import Workflow
+from tests import EXCEPTIONS, load_tests
+
+
+class EntMocker:
+    def __init__(self, token, label):
+        self.text = token
+        self.label_ = label
+
+
+class SpacyMocker:
+    def __init__(self, payload):
+        self.transcripts = [expectation["text"] for expectation in payload]
+        self.all_ents = [expectation["entities"] for expectation in payload]
+        self.ents = None
+
+    def __call__(self, transcript):
+        index = self.transcripts.index(transcript)
+        self.ents = (
+            EntMocker(ent["value"], ent["type"]) for ent in self.all_ents[index]
+        )
+        return self
+
+
+def mutate(w, v):
+    w.output = v
+
+
+def test_value_error_if_incorrect_style():
+    with pytest.raises(ValueError):
+        l = ListEntityPlugin(
+            access=lambda w: (w.input,), mutate=mutate, style="unknown", entity_map={}
+        )
+        l._parse({"location": ["..."]})
+
+
+def test_value_error_if_spacy_missing():
+    with pytest.raises(ValueError):
+        l = ListEntityPlugin(
+            access=lambda w: (w.input,),
+            mutate=mutate,
+            style="spacy",
+            entity_map={},
+            spacy_nlp=None,
+        )
+        l.ner_search("...")
+
+
+def test_type_error_if_compiled_patterns_missing():
+    with pytest.raises(TypeError):
+        l = ListEntityPlugin(
+            access=lambda w: (w.input,),
+            mutate=mutate,
+            style="spacy",
+            entity_map={},
+            spacy_nlp=None,
+        )
+        l.regex_search("...")
+
+
+@pytest.mark.parametrize("payload", load_tests("cases", __file__))
+def test_get_entities(payload):
+    input_ = payload.get("input")
+    expected = payload.get("expected")
+    exception = payload.get("exception")
+    config = payload.get("config")
+    spacy_mocker = None
+    transcripts = [expectation["text"] for expectation in input_]
+
+    if config["style"] == "spacy":
+        spacy_mocker = SpacyMocker(input_)
+
+    if expected:
+        list_entity_plugin = ListEntityPlugin(
+            access=lambda w: (w.input,), mutate=mutate, spacy_nlp=spacy_mocker, **config
+        )()
+
+        workflow = Workflow(preprocessors=[list_entity_plugin], postprocessors=[])
+        workflow.run(input_=transcripts)
+        entities = workflow.output
+        for i, entity in enumerate(entities):
+            assert entity.value == expected[i]["value"]
+            assert entity.type == expected[i]["type"]
+    else:
+        with pytest.raises(EXCEPTIONS.get(exception)):
+            list_entity_plugin = ListEntityPlugin(
+                access=lambda w: (w.input,),
+                mutate=mutate,
+                spacy_nlp=spacy_mocker,
+                **config
+            )()
+
+            workflow = Workflow(preprocessors=[list_entity_plugin], postprocessors=[])
+            workflow.run(input_=input_)
diff --git a/tests/preprocess/text/test_list_entity_plugin/test_cases.yaml b/tests/preprocess/text/test_list_entity_plugin/test_cases.yaml
new file mode 100644
index 00000000..1c8f0e64
--- /dev/null
+++ b/tests/preprocess/text/test_list_entity_plugin/test_cases.yaml
@@ -0,0 +1,94 @@
+- description: "Test GPE entities mocked via spacy"
+  input:
+    - text: "i want it in New Delhi"
+      entities:
+      - type: "GPE"
+        value: "New Delhi"
+    - text: "i want in Panipat"
+      entities:
+      - type: "GPE"
+        value: "Panipat"
+    - text: "I want in Delhi"
+      entities:
+      - type: "GPE"
+        value: "Delhi"
+  expected:
+    - type: "GPE"
+      value: "New Delhi"
+    - type: "GPE"
+      value: "Panipat"
+    - type: "GPE"
+      value: "Delhi"
+  config:
+    style: spacy
+    entity_map: {}
+
+- description: "Test location entities using regex"
+  input:
+    - text: "i want it in New Delhi"
+      entities:
+      - type: "location"
+        value: "New Delhi"
+  expected:
+    - type: "location"
+      value: "New Delhi"
+  config:
+    style: regex
+    entity_map: {}
+    candidates:
+      location:
+        - "New Delhi"
+
+- description: "Test spacy restricted on labels"
+  input:
+    - text: "That's a Google product"
+      entities:
+      - type: "ORG"
+        value: "Google"
+    - text: "That place is in Delhi"
+      entities:
+      - type: "GPE"
+        value: "Delhi"
+  expected:
+    - type: "ORG"
+      value: "Google"
+  config:
+    style: spacy
+    entity_map: {}
+    labels: "ORG"
+
+- description: "Test regex style fails if candidates are not dict"
+  input:
+    - text: "i want it in New Delhi"
+      entities:
+      - type: "location"
+        value: "New Delhi"
+  exception: "TypeError"
+  config:
+    style: regex
+    entity_map: {}
+    candidates: []
+
+- description: "Test regex style fails if candidates are empty"
+  input:
+    - text: "i want it in New Delhi"
+      entities:
+      - type: "location"
+        value: "New Delhi"
+  exception: "ValueError"
+  config:
+    style: regex
+    entity_map: {}
+    candidates: {}
+
+
+- description: "Test invalid style"
+  input:
+    - text: "i want it in New Delhi"
+      entities:
+      - type: "location"
+        value: "New Delhi"
+  exception: "ValueError"
+  config:
+    entity_map: {}
+    style: "unknown"
\ No newline at end of file
diff --git a/tests/utils/test_logger.py b/tests/utils/test_logger.py
index 4835c68f..a0798019 100644
--- a/tests/utils/test_logger.py
+++ b/tests/utils/test_logger.py
@@ -1,11 +1,11 @@
-from dialogy.utils.logger import debug, log
+from dialogy.utils.logger import dbg, log
 
 
 def test_debug_logs_on_function():
     def func(debug=True):
         return 4
 
-    restrict_log_level = debug(log)(func)
+    restrict_log_level = dbg(log)(func)
     assert restrict_log_level(debug=True) == 4
 
 
@@ -14,7 +14,7 @@ class Mock:
         def __init__(self, debug=False):
             self.debug = debug
 
-        @debug(log)
+        @dbg(log)
         def func(self):
             return 4
 
@@ -24,7 +24,7 @@ def func(self):
 
 def test_debug_logs_on_method_missing_debug():
     class Mock:
-        @debug(log)
+        @dbg(log)
         def func(self):
             return 4
 
@@ -34,7 +34,7 @@ def func(self):
 
 def test_debug_logs_dont_eat_docstrings():
     class Mock:
-        @debug(log)
+        @dbg(log)
         def func(self):
             """lorem ipsum"""
             return 4