add location change for some special cases