change part 2 add part 3 and 4