lots of typos and cleanup