using inner module for proper namespacing in macros