our versions of part2 functions