add macro.h