use module definition macros