While you're here, I think draw_target should be renamed. It's not a draw target, but a surface.