finished part1&2