rewrite & restructure
rewrite & restructure