added transaction support