introduse transaction concept