some typos were corrected