fix the macro's behavior.