def METHOD_NAME(files: list) -> Set:
    """ Decide what files to keep
    Expects a list of filenames sorted from most recent to least recent """
    desires = [
        Desire(desired_backups=5, interval=timedelta(hours=1)),  # retain 5 hourly backups
        Desire(desired_backups=5, interval=timedelta(days=1)),  # retain 5 daily backups
        Desire(desired_backups=5, interval=timedelta(weeks=1)),  # retain 5 weekly backups
        Desire(desired_backups=5, interval=timedelta(weeks=4))]  # retain 5 monthly
    files.sort()
    for filename in files:
        for desire in desires:
            desire.evaluate(filename)
    files_to_keep = set()
    for desire in desires:
        for file in desire.files_to_keep:
            files_to_keep.add(file)
    return files_to_keep