trying to conform to Iobserver and Iobservable