docs: def valid_workflow(self):
          """
          Return true if each handler's output type is the same as
          the next handler's input type. Return False if not.
  
          Returns:    boolean - True if workflow is valid, False if not
          """
          for ix, handler in enumerate(self.handlers[:-1]):
              next_input_type = self.handlers[ix + 1].input_type
  
              if (handler.output_type is not None and
                      next_input_type is not None):
                  if handler.output_type != next_input_type:
                      return False
  
          return True