Revert "macros"

This reverts commit 628847341788cb4373ab1535608d617f20a80c14.
Revert "Revert "macros""

This reverts commit f51470d27e8d748d4b5773307048d30dc87bcc17.