Tidied up Subtransaction so it actually works properly