finish part 1
almost done with part 3