Rewrite more macro def