Parcelable
Making a custom object Parcelable.
Parcelable object containing another Parcelable object
Using Enums with Parcelable