added basic transaction support