part2 a, b in progress