many typos and grammars changed