code: func HistoryViewerFor(kind schema.GroupKind, c kubernetes.Interface) (HistoryViewer, error) {
  	elem := kapps.GroupKindElement(kind)
  	visitor := &HistoryVisitor{
  		clientset: c,
  	}
  
  	// Determine which HistoryViewer we need here
  	err := elem.Accept(visitor)
  
  	if err != nil {
  		return nil, fmt.Errorf("error retrieving history for %q, %v", kind.String(), err)
  	}
  
  	if visitor.result == nil {
  		return nil, fmt.Errorf("no history viewer has been implemented for %q", kind.String())
  	}
  
  	return visitor.result, nil
  }
docs: // HistoryViewerFor returns an implementation of HistoryViewer interface for the given schema kind