updated with typos; thanks to Robert Glover for pointing them out