@classmethod
def _flatten(cls, sort, remove=None):
    """ requires sort or something that can be collapsed """
    c = sort.collapse()
    if remove is not None:
        for sep_k in remove.collapse().keys():
            for col_k in c.keys():
                if col_k.startswith(sep_k):
                    del c[col_k]
                    break
    return list(c.items())
