part 2 code basically done.