Considering points 1 and 4 are essentially done, we only need the option to change the backend execution to run within the transaction and some tests.