Out of curiosity how do other people decide about creating objects with different behavior by subclassing vs. passing in a closure. In Java it seems the answer is nearly always subclassing (because you need to subclass to pass in a "closure"), but it doesn't seem as clear-cut in Kotlin.