added MacroExtensions to make writing macros less repetitive