wrapped common operations in transactions