updated article with macros