ok, `dist_func` below