finish part1&2

finish part1&2