migrate requirements to macros