add macro utilities