expressions and macros