add macros where useful