added for and with macros