     	   (data joined-model)))
 
     ;; TODO:
+
+    ;; unjoined models:
+    ;; need  lhs-joined/unjoined, rhs-joined/unjoined models
+    ;; should the joined ones contain singleton or tuple entries ?
+    ;; need to refresh views on connection to models
+    ;; need to split permutation and transposition of joins into two stages so we can populate joined models
+
     ;;  support custom join/get/lookup fns
     ;;  support use of custom collection
     ;;; support use of custom assoc/dissoc fns

    (on-upsert bs b1)
    (is (= [[{}{}{}] [[{:b1 b1}{:b {:b1 b1}}][{}{}]] [{}{}{}]] (data join)))
    (is (= {} (data joined-model)))

    ;; rhs insertion - no join
    (on-upsert cs c1)
    (is (= [[{}{}{}] [[{:b1 b1}{:b {:b1 b1}}][{:c1 c1}{:c {:c1 c1}}]] [{}{}{}]] (data join)))
    (is (= {} (data joined-model)))

    ;; lhs-insertion - first join
    (on-upsert as a1)

    	   [:a2 :b2 :c2] (->ABC [:a2 :b2 :c2] [0 0 0] "b2-data" "c2-data")
    	   }
    	   (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)))

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