use more cleanup macros