updated part 2-3