refactore tx