fix the function pointer problem using a tooooooooo long macro