solved 2-3
solved part 4