     	   }
     	   (data joined-model)))
     (is (= {:b2 b2} (data a-b-joined-model)))
-    (is (= {} (data a-b-unjoined-model)))
+    ;;;(is (= {} (data a-b-unjoined-model)))
+    (is (= {:b1 b1v1} (data a-b-unjoined-model)))
 
     ;; join - delete lhs - a2
     (on-delete as a2)

     (fn [_]
       (on-deletes joined-model stale-joins)
       (on-upserts joined-model fresh-joins)

       (println "STALE: " stale-joins)
       (println "FRESH: " fresh-joins)
       (let [stale (not (empty? stale-joins))
             fresh (not (empty? fresh-joins))]
         (if (not (= stale fresh))
           (if stale
             (do
               (if rhs-joined-model (on-delete rhs-joined-model rhs))
               (if rhs-unjoined-model (on-upsert rhs-unjoined-model rhs)))
             (do
               (if rhs-unjoined-model (on-delete rhs-unjoined-model rhs))
               (if rhs-joined-model (on-upsert rhs-joined-model rhs)))
             ))))]
    ))

;;; TODO - ugly, slow, ...

    	   (data joined-model)))
    ;;(is (= {:b1 b1 :b2 b2} (data a-b-joined-model)))
    (is (= {:b2 b2} (data a-b-joined-model)))
    ;;(is (= {} (data a-b-unjoined-model)))
    (is (= {:b1 b1} (data a-b-unjoined-model)))

    ;; lhs update - relevant joins should update
    (on-upsert as a1v1)
