Add CanvasInput Implementation