Added X-macros, not completed finished as of yet