Behavioral Design Patterns in Kotlin