add macro expand support