Updated to new spec (with-transaction)