Fixed problem with part A and works fine now. Needs to be cleaned up
still.