add regen action, rewrite core