Ah, I see. I think that is ok. What happens is when you load a new JWT, a new transaction is [created and added to the session](https://github.com/mozilla/webpay/blob/master/webpay/pay/views.py#L112-L114). In your new view, the transaction is required to be in a sane state. This is actually a good thing because the state management I was worried before doesn't seem as bad. All state is managed in the transaction object.