Finished Part 1
Finished Part 1 with better DEBUG use