better func_find