refine the macro.