macros and foreach