move macros to a separate file
add MACROS for M2M static construction