        (reify IProjection
          (-project [this target enqueue-fn]
            (let [pproj (OffsetProjection. offset target nil)]
-             (target-init target pproj)
-             (project proj pproj enqueue-fn)))))
+             (set! (.-source pproj) (project proj pproj enqueue-fn))
+             pproj))))
 
      (deftype LimitProjection [offset source target]
        Object

    (target-remove this 0)))

(defprotocol IProjection
  (-project [this target enqueue-fn]))

(defn project [projection target enqueue-fn]
  (-project projection target enqueue-fn))

       (reify IProjection
         (-project [this target enqueue]
           (let [source (SeqProjectionSource. elements target enqueue)]
             (enqueue (fn [] (.refresh source)))
             source))))

     (defprotocol IAsVirtualElement
       (-as-velem [this as-velem-fn]))
