Implementing a transaction