add new macros to unify code