Completes Part A, starts and almost finishes Part B