def METHOD_NAME(
        fields: tp.Iterable[tp.Tuple[str, tp.Any]],
        ) -> tp.Iterator[sf.Series]:
    for k, group in frame.iter_group_items(config.GROUP_BY):
        def gen() -> tp.Iterator[tp.Tuple[tp.Tuple[str, str], sf.Series]]:
            for field, converter in fields:
                # the key here becomes columns
                converter = converter if converter else lambda x: x
                for label, func in config.CHARACTERS:
                    yield (field, label), func(converter(group[field])) # type: ignore
        # name will become row (index) identifier
        yield sf.Series.from_items(gen(),
                name=k,
                index_constructor=sf.IndexHierarchy.from_labels)