Add transaction handling