switching to an array based canvas

this probably broke a bunch of things.