new macro
some cleanup