fix: tpl bug
opt: auto emit