revise part1