Managing state can get complex quickly. State properties often depend on state properties and manually keeping them in sync is challenging and error prone. Because state classes are just Kotlin data classes, you can create additional properties on your state class that are entirely derived from your primary properties defined in your constructor. We call these derived properties. Because derived properties are calculated directly from other state properties, they are guaranteed to be up to date and are easy to test.