finish part 1
finish part 2