Completed part 1-3