changes to SurfaceManager