completed part 3
completed part 4