Slightly refactored CanvasRenderingContext2D