add Observable.desc() for a structured description, change Observable.deps() to method