     [this k]
     (let [v (.valAt this k this)]
       (when-not (identical? this v)
-        (Tuple/create k v))))
+        [k v])))
 
   (seq
     [this]
-    (seq (concat [(Tuple/create :id -id)
-                  (Tuple/create :size -size)]
-                 -attributes)))
+    (seq (concat [[:id -id] [:size -size]] -attributes)))
 
   (iterator
     [this]
-    (seq-iterator (seq this)))
+    (.iterator (seq this)))
 
   (assoc
     [this k v]

            (let [^java.util.Map$Entry entry (first entries)]
              (recur (.assoc result (.getKey entry) (.getValue entry))
                     (rest entries)))
            reult))))

  (equiv
    [this other]

      (:id :size :content :reader)
        (throw (IllegalArgumentException.
                 (str "Block " k " cannot be changed")))
      (Block. -id -size -content -reader (not-empty (dissoc -attributes k)) -meta)))


  ; IDeref?
