put macros in their own module