           (swap! subscriptions assoc target
                  (vary-meta (compscribe* subs-target
                                          source-service
-                                         cached-service
+                                         (this-cached this)
                                          spec
                                          id)
                             assoc ::identifier identifier))))))

  (doto (chan)
    (on-close-pipe target on-close)))

(defrecord CompscribeService [cached-service source-service subscriptions]
  IStream
  (subscribe [this identifier target]
    (let [[spec id] identifier

                  IStream
                  (subscribe [this identifier target]
                    (-> service
                        (caching this)
                        (subscribe identifier target)))
                  (cancel [this target]
                    (cancel service target)))
