part 3
final rev