part1 done.