why are these macros?