def METHOD_NAME(params, constant, matching_f):
    '''
    params are verts, movement vectors, strength
    - verts and  movement vectors should be list as [[[float, float, float],],] (Level 3)
    - Strength should be list as [[float, float, ..], [float, ..], ..] (Level 2)
    desired_levels = [3, 3, 2]
    constant are the function options (data that does not need to be matched)
    matching_f stands for list matching formula to use
    '''
    result = []
    match_mode, output_numpy = constant
    params = matching_f(params)
    local_match = numpy_list_match_func[match_mode]
    for props in zip(*params):
        verts, move_verts, strength = local_match([np.array(p) for p in props])
        verts_out = verts + move_verts * strength[:, np.newaxis]
        result.append(verts_out if output_numpy else verts_out.tolist())
    return result