docs: def _handle_text(self, text: str):
          """
          Check to see if text is a command. Otherwise, check to see if the
          second word is a command.
  
          Commands get handeled by the `_handle_command` method
  
          If not command, check to see if first word is a service or an author.
          Default program is to send message replies. However, we will also
          check to see if the second word is a command and handle approparitly
  
          This method does simple string parsing and high level program control
          """
          # If first word is command
          if self.is_command(text):
              self._logger.debug(' first word is a command')
              # get the command, args, and kwargs out using `shlex`
              command, args, kwargs = _get_cmd_args_kwargs(text)
              self._logger.info(' command: %s, %s %s', command, args, kwargs)
              # hand off to the `handle_command` method
              result = self._handle_command(command, args, kwargs)
  
              if result:
                  if isinstance(result, str):
                      print(result)
                  else:
                      _pprint.pprint(result)
              # Exit the method here if in this block
              return
          # Else first word is not a command
          else:
              self._logger.debug(' first word is not a command')
              # get the first word and then the rest of the text.
              try:
                  first_word, second_word = text.split(' ', 1)
                  self._logger.debug(' first word: %s', first_word)
              except ValueError:
                  self._logger.debug('No second word in chain!')
                  return self._handle_NLP(text)
              # check if second word/string is a command
              if self.is_command(second_word):
                  self._logger.info(' second word is a command')
                  # get the command, args, and kwargs out using `shlex`
                  command, args, kwargs = _get_cmd_args_kwargs(second_word)
                  self._logger.debug(' second word: %s', command)
                  self._logger.debug(' command %s', command)
                  self._logger.debug('args %s ', args)
                  self._logger.debug('kwargs %s', kwargs)
                  return self._first_word_not_cmd(first_word, command, args, kwargs)
              # if second word is not a command, default to NLP
              else:
                  self._logger.info(' defaulting to message since second word '
                                    'isn\'t a command')
  
                  return self._handle_NLP(text)