lots of typos improved