unchecked is not needed on Equals