change to CGContext totally