    [clojure.contrib logging]
    [org.dada.core counted-set]
    )
-  ;; (:require
-  ;;  [org.dada.core BaseModelView]
-  ;;  )
   (:import
    [java.util Collection]
    [org.dada.core Data Metadata RemoteModel Update View]
    )
   (:gen-class
-   ;;:extends org.dada.core.BaseModelView
    :implements [org.dada.core.ModelView java.io.Serializable]
-   :constructors {[String org.dada.core.Metadata]
-		  ;;[String org.dada.core.Metadata]
-		  []
-		  }
+   :constructors {[String org.dada.core.Metadata] []}
    :methods [[writeReplace [] Object]]
    :init init
    :state state


(defn -update [#^org.dada.core.SimpleModelView this & inputs]
  (let [[[_ _ update-fn] mutable] (.state this)
	[_ _ views] @mutable
	[#^Collection i #^Collection a #^Collection d] (update-fn inputs)]
    (if (not (and (empty? i) (empty? a) (empty? d)))
      (-notifyUpdate this i a d))

(defn -init [#^String name #^Metadata metadata]

  [ ;; super ctor args
   []
   ;; instance state
   (let [key-getter (.getPrimaryGetter metadata)
