     ;; view upstream metamodel for arrival of results
     (connect
      src-metamodel
-     (proxy [View] []
-	    (update [insertions alterations deletions]
-		    (doall (map (fn [#^Update insertion]
-				    (f tgt-metamodel (.getNewValue insertion))) insertions)))))
+     (reify View
+       (update [_ insertions alterations deletions]
+         (doall (map (fn [#^Update insertion]
+                       (f tgt-metamodel (.getNewValue insertion))) insertions)))))
     tgt-metamodel))
 
 (defn dunion [& [model-name]]

     (custom-metadata3 org.dada.core.Result
		       [:model]		;TODO - this is a BAD idea for a PK
		       [:model]		;TODO - we need a proper version - or code that can handle versionless data
		       (proxy [Metadata$VersionComparator][](compareTo [lhs rhs] -1))
		       [[:model org.dada.core.Model false]
			[:prefix String false]
			[:pairs java.util.Collection false]

  (map (fn [#^Getter getter] (.get getter value)) getters))

(def #^Metadata$VersionComparator int-version-comparator
     (reify Metadata$VersionComparator (compareTo [_ old new] (- (.getVersion old) (.getVersion new)))))

;;----------------------------------------
;; Filtration - should be implemented as a thin wrapper around Splitter
