Add transactional support