define macros before they are used