I commented the heck out of some stuff. Also, I found a bug in the undo function. When one redos, the canvas history array becomes longer than 10. I am not worried about it being more than 10, so much as I am worried about the size of the array being unconstrained. It should never grow or shrink in length