dsl: macros refac