variable length arguments for macros