lots of typos fixed