3.1. Understanding the Difference Between const and val3.2. Creating Custom Getters and Setters3.3. Defining Data Classes3.4. The Backing Property Technique3.5. Overloading Operators3.6. Using lateinit for Delayed Initialization3.7. Using Safe Casting, Reference Equality, and Elvis to Override equals3.8. Creating a Singleton3.9. Much Ado About Nothing