Field equality

not sure if (!a.equals(b)) then a.hashCode != b.hashCode. 
equals and hashCode contract require only: if (a.equals(b)) then a.hashCode == b.hashCode