docs: def names(self):
          """
          Get all names of children
          :return:
          :rtype:
          """
          if not self.children:
              return set([self.name])
          ret = set()
          for child in self.children:
              for name in child.names:
                  ret.add(name)
          return ret