part1_a mostly done