initial macroexpansion support