@jcredding this is the "meat" of the PR - this is what I originally wanted to update and test.  The rest is just tests and adding callback mechanisms so I could test destroys were being run in transactions.