Macros for making complicated procedures