moved general macros to utils