fix typos, restructure poor structure