late modifier means “enforce this variable's constraints at runtime instead of at compile time”. It's almost like the word “late” describes when it enforces the variable's guarantees. When you do this, the initializer becomes lazy