void transaction + refactoring