class Bindable { var value: T? { didSet { observer?(value) } } var observer: ((T?) -> ())? func bind(observer: @escaping (T?) -> ()) { self.observer = observer } }