Caught many typos rearranged a little