rook
var foo by Delegates.observable<T>(default: T, (property: KProperty<*>, oldValue: T, newValue: T) -> Unit)