Separate OverlayCanvas out as a separate file for testing