def METHOD_NAME(verts, faces, points, distance, safe_check=True, flat_output=True):
    '''
    verts, faces and points: Expects multiple objects lists (level of nesting 3)
    distance: expects a list with level of nesting of 2
    '''
    output = [[] for i in range(4)]
    for bvh, pts, dist in zip(svmesh_to_bvh_lists(verts, faces, safe_check), points, distance):
        res_local = [[] for i in range(4)]
        for pt, d in zip(pts, cycle(dist)):
            res = bvh.find_nearest_range(pt, d)
            #claning results:
            res = sorted(res, key=take_third)
            unique = []
            if flat_output:
                for r in res:
                    if not r[2] in unique:
                        unique.append(r[2])
                        append_multiple(res_local, translate_data(r))
            else:
                sub_res_local = [[] for i in range(4)]
                for r in res:
                    if not r[2] in unique:
                        unique.append(r[2])
                        append_multiple(sub_res_local, translate_data(r))
                append_multiple(res_local, sub_res_local)
        append_multiple(output, res_local)
    return output