Proofread and updated latest changes by janxin