revise some errors and add more knowledge