Avoid call_user_func