use software surface