typo and some improve