Step 1 - Implementing the transaction manager