complete part1 1~3