some typo are fixed