     (let [validated (validate s ::new-transaction transaction)]
       (if (validation/has-error? validated)
         validated
-
-        (create-transaction-without-balances s validated)
-
-        #_(if (delay-balances? (:entity-id transaction))
+        (if (delay-balances? (:entity-id transaction))
             (create-transaction-without-balances s validated)
             (create-transaction-and-adjust-balances s validated))))))
 

            s
            {:account-id (:account-id reference-item)
             :index [:>= (:index reference-item)]
             :transaction-date [:between (:transaction-date reference-item)]}
            {:sort [[:index :desc]]})
          (remove #(= (:id reference-item) (:id %)))
          (map after-item-read)))))

      (delete-transaction-item storage id))
    (->> dereferenced-account-ids
         ; fake out an item because that's what get-previous-item expects
         (map #(hash-map :account-id %
                         :id -1
                         :transaction-date (:transaction-date transaction)))
         (map #(or (get-previous-item storage %)
                   (assoc % :index -1 :balance (bigdec 0)))))))

(defn update
