Pulling the compiler macros into a class and register them as the other stuff, rearranging
Messed up the do macro loop somehow when trying to clean it up, can't be bothered to figure it out, so reverting to previous version