part2 solution