maybe ' result = 31 * result + obj.hashCode(); '  will be better?