Implement transaction