added transactional lib