refactoring da transaction. raise cohesion