update part 2
part 3