some change to part 3 ,not finished