class Value(var value: T = null as T, var text: String? = null) val Value.additionalText by DVal(Value::text) val Value.additionalValue by DVal(Value::value) class DVal(val kmember: Any) { operator fun getValue(t: Any?, p: Any) = 42 } var recivier : Any? = "fail" var value2 : Any? = "fail2" var T.bar : T get() = this set(value) { recivier = this; value2 = value} val barRef = String?::bar