add support for macros