Use SplFixedArray for improved performance
Revert Armor then Inventory instead of Inventory then Armor on failed transaction