Delegated properties
Observable properties
Custom delegation
Lazy initialization
Map-backed properties
Delegate Can be used as a layer to reduce boilerplate