some nice macros