remove Canvas.front by refactoring some code. this lets us cleanup after drawing to the screen rather than leaving around a bunch of stale state