version1 for part 3