The lateinit keyword allows you to avoid initializing a property when an object
is constructed. If your property is referenced before being initialized,
Kotlin throws an UninitializedPropertyAccessException ,
so be sure to initialize your property as soon as possible.