broke these macros out since they all came from the same place
using namespaces