moved transaction containment to worker