def METHOD_NAME(f=None, next=None, name=None, title=None):
    if f in [False, None] and _progress_tree_stack:
        f = _progress_tree_stack[-1]
    if f in [False, None] and vaex.settings.main.progress.force:
        f = vaex.settings.main.progress.force
    if name is None:
        name = title
    if title is None:
        name = title
    if isinstance(f, ProgressTree):
        # collapse nameless or similarly named progressbars in 1
        if title is None or f.bar and f.bar.title == title:
            return f
        else:
            return f.add(title)
    if callable(f):
        next = f
        f = False
    if f in [None, False]:
        return ProgressTree(next=next, name=name)
    else:
        if f is True:
            return ProgressTree(bar=bar(title=title), next=next, name=name)
        elif isinstance(f, str):
            return ProgressTree(bar=bar(f, title=title), next=next, name=name)
        else:
            return ProgressTree(next=next, name=name)