  REST framework now includes a simple `BaseSerializer` class that can be used to easily support alternative serialization and deserialization styles.
  
  This class implements the same basic API as the `Serializer` class:
  
  * `.data` - Returns the outgoing primative representation.
  * `.is_valid()` - Deserializes and validates incoming data.
  * `.validated_data` - Returns the validated incoming data.
  * `.errors` - Returns an errors during validation.
  * `.save()` - Persists the validated data into an object instance.
  
 
</s> remove * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumentated state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called.
 </s> add * Some data, such as many-to-many relationships, cannot be added to the object instance until after it has been saved. This type of data needed to be hidden in some undocumented state on the object instance, or kept as state on the serializer instance so that it could be used when `.save()` is called. </s> remove This change also means that we no longer use the `.full_clean()` method on model instances, but instead perform all validation explicitly on the serializer. This gives a cleaner seperation, and ensures that there's no automatic validation behavior on `ModelSerializer` classes that can't also be easily replicated on regular `Serializer` classes.
 </s> add This change also means that we no longer use the `.full_clean()` method on model instances, but instead perform all validation explicitly on the serializer. This gives a cleaner separation, and ensures that there's no automatic validation behavior on `ModelSerializer` classes that can't also be easily replicated on regular `Serializer` classes. </s> remove * There can be complex dependancies involved in order of saving multiple related model instances.
 </s> add * There can be complex dependencies involved in order of saving multiple related model instances. </s> remove You can also still use the `many=True` argument to serializer classes. It's worth noting that `many=True` argument transparently creates a `ListSerializer` instance, allowing the validation logic for list and non-list data to be cleanly seperated in the REST framework codebase. 
 </s> add You can also still use the `many=True` argument to serializer classes. It's worth noting that `many=True` argument transparently creates a `ListSerializer` instance, allowing the validation logic for list and non-list data to be cleanly separated in the REST framework codebase.  </s> remove * Optimisations for serialializing primary keys.
 </s> add * Optimisations for serializing primary keys.
* `.data` - Returns the outgoing primitive representation.
  REST framework now includes a simple `BaseSerializer` class that can be used to easily support alternative serialization and deserialization styles.
  
  This class implements the same basic API as the `Serializer` class:
  
* `.data` - Returns the outgoing primitive representation.
  * `.is_valid()` - Deserializes and validates incoming data.
  * `.validated_data` - Returns the validated incoming data.
  * `.errors` - Returns an errors during validation.
  * `.save()` - Persists the validated data into an object instance.
  
keep keep keep keep replace keep keep keep keep keep
 Minor: fix spelling and grammar, mostly in 3.0 announcement 
docs/topics/3.0-announcement.md