implemented a smoother regionchanged event