surface update
surface speedup