feat: separate macros in its own file