optimized rendering a little bit

also broke the position of the canvas, but I'll worry about that later