def METHOD_NAME(real_thing, memo=None, particle_classes=None):
    """Coarse-graining function."""
    if memo is None:
        memo = OrderedDict()
    if particle_classes is None:
        particle_classes = []
    proxy = _create_proxy_compounds(real_thing, memo, particle_classes)
    _create_proxy_bonds(real_thing, memo, particle_classes)
    _create_proxy_labels(real_thing, memo)
    return proxy