`hashCode`/`equals` useful for testing