finished part2
finished part 3