code: def capability_functions(self, fn):
          
          if _debug: Collector._debug("capability_functions %r", fn)
  
          # build a list of functions to call
          fns = []
          for cls in self.capabilities:
              xfn = getattr(cls, fn, None)
              if _debug: Collector._debug("    - cls, xfn: %r, %r", cls, xfn)
              if xfn:
                  fns.append( (getattr(cls, '_zindex', None), xfn) )
  
          # sort them by z-index
          fns.sort(key=lambda v: v[0])
          if _debug: Collector._debug("    - fns: %r", fns)
  
          # now yield them in order
          for xindx, xfn in fns:
              if _debug: Collector._debug("    - yield xfn: %r", xfn)
              yield xfn
docs: This generator yields functions that match the
          requested capability sorted by z-index.