Does it has to be `def`? Can't it be a `val` or a `lazy val`?