revise some functions with section