Not a big difference if we have a new macro or not, just wanted to point out that your code can be shortened (mostly by removing $() parentheses)