typos fixed according to original