          logger.debug("Compiling %s threads", self._plugin_type)
          self._add_thread("{}_input".format(self._plugin_type),
                           self.process_input,
                           self._queues["in"],
                           self._queues["predict"])
          self._add_thread("{}_predict".format(self._plugin_type),
                           self._predict,
                           self._queues["predict"],
                           self._queues["post"])
          self._add_thread("{}_output".format(self._plugin_type),
                           self.process_output,
 
</s> remove         self._add_thread("{}_input".format(self._plugin_type),
 </s> add         name = self.name.replace(" ", "_").lower()
        base_name = "{}_{}".format(self._plugin_type, name)
        self._add_thread("{}_input".format(base_name), </s> remove                          self._queues["predict"],
                         self._queues["post"])
        self._add_thread("{}_output".format(self._plugin_type),
 </s> add                          self._queues["predict_{}".format(name)],
                         self._queues["post_{}".format(name)])
        self._add_thread("{}_output".format(base_name), </s> remove                          self._queues["post"],
 </s> add                          self._queues["post_{}".format(name)], </s> remove         plugin = getattr(self, "_{}".format(phase))
 </s> add         plugin_type, idx = self._get_plugin_type_and_index(phase)
        plugin = getattr(self, "_{}".format(plugin_type))
        plugin = plugin[idx] if idx is not None else plugin </s> remove         self._add_queues(kwargs["in_queue"], kwargs["out_queue"], ["predict", "post"])
 </s> add         name = self.name.replace(" ", "_").lower()
        self._add_queues(kwargs["in_queue"],
                         kwargs["out_queue"],
                         ["predict_{}".format(name), "post_{}".format(name)])
                         self._queues["predict_{}".format(name)])
        self._add_thread("{}_predict".format(base_name),
          logger.debug("Compiling %s threads", self._plugin_type)
          self._add_thread("{}_input".format(self._plugin_type),
                           self.process_input,
                           self._queues["in"],
                         self._queues["predict_{}".format(name)])
        self._add_thread("{}_predict".format(base_name),
                         self._queues["predict_{}".format(name)])
        self._add_thread("{}_predict".format(base_name),
                           self._predict,
                           self._queues["predict"],
                           self._queues["post"])
          self._add_thread("{}_output".format(self._plugin_type),
                           self.process_output,
keep keep keep keep replace replace keep keep keep keep keep
 Extraction - Auto generate Components and Extended Masks 
plugins/extract/_base.py