Move to a shared Equals function