Before, it was checking against the moved pointer, which could cause inaccurate
There is so much more to do, but I think it is time to commit this to VCS