Transactional implementation