Replaced every instance of canvasAsData with an array of canvas datas. This should permit me to implement undo and redo. Also I found a confusing mistake in the resizing operations. Its one of those mistakes that have no explaination, and seem like should have broken everything, but didnt. Its a very interesting mistake that mes me wonder if I understand anything about computers at all, and also wonder how any kind of computer program is possible given such weird mistakes