Putting back transactional code. Will look for cross-cutting-concern solution.