added single-transaction option