added singleton to macros