new_contents: """This is a model to produce dendrograms of the dtm."""
  
  import pandas as pd
  from typing import NamedTuple, Optional
  from lexos.models.base_model import BaseModel
  from lexos.models.matrix_model import MatrixModel, IdTempLabelMap
  from lexos.receivers.bct_receiver import BCTOption, BCTReceiver
  
  
  class BCTTestOptions(NamedTuple):
      """A typed tuple to hold test options."""
  
      doc_term_matrix: pd.DataFrame
      front_end_option: BCTOption
      id_temp_label_map: IdTempLabelMap
  
  
  class BCTModel(BaseModel):
      """The BCTModel inherits from the BaseModel."""
  
      def __init__(self, test_options: Optional[BCTTestOptions] = None):
          """Generate bootstrap consensus tree.
  
          :param test_options: The input used in testing to override the
                               dynamically loaded option.
          """
          super().__init__()
          if test_options is not None:
              self._test_dtm = test_options.doc_term_matrix
              self._test_front_end_option = test_options.front_end_option
              self._test_id_temp_label_map = test_options.id_temp_label_map
          else:
              self._test_dtm = None
              self._test_front_end_option = None
              self._test_id_temp_label_map = None
  
      @property
      def _doc_term_matrix(self) -> pd.DataFrame:
          """:return: the document term matrix."""
          return self._test_dtm if self._test_dtm is not None \
              else MatrixModel().get_matrix()
  
      @property
      def _id_temp_label_map(self) -> IdTempLabelMap:
          """:return: a map takes an id to temp labels."""
          return self._test_id_temp_label_map \
              if self._test_id_temp_label_map is not None \
              else MatrixModel().get_id_temp_label_map()
  
      @property
      def _bct_option(self) -> BCTOption:
  
          return self._test_front_end_option \
              if self._test_front_end_option is not None \
              else BCTReceiver().options_from_front_end()
  
subject: Set up the bct model