return old location if new one is not good enough