Big commit to support macros