finally finish part 1