A minimal retained mode wrapper with picking support around the Canvas API