add macro recording