handle smooth changes in surface