Changed the way default values are handled. Check for nulls in equals() and hashCode().