No real change
Added all comments
Added much better exception handling
Transactions will not complete if there is now an error