Observe

constructor(init: T, onValueChanged: IOnValueChangedEvent<T>? = null)
constructor(init: T, onValueChanged: (T) -> Unit? = null)
constructor(init: T)