Same as above about `equals` and `hashCode`