use Objects.toString and Objects.hashCode