 /// ```swift
 /// dbQueue.transaction { db in
 ///     // All database operations here are contained within a transaction
+///     return .commit
 /// }
 /// ```
 public final class DatabaseQueue {
 	/// The underlying database
-	private let database: Database
+	let database: Database
 	/// The dispatch queue used to serialize access to the underlying database connection
 	public let queue: DispatchQueue
 

	/// - parameter qos: The quality of service for `block`
	/// - parameter block: A closure performing the database operation
	/// - parameter database: A `Database` used for database access within `block`
	public func async(group: DispatchGroup? = nil, qos: DispatchQoS = .unspecified, block: @escaping (_ database: Database) -> (Void)) {
		queue.async(group: group, qos: qos) {
			block(self.database)
		}

	/// - parameter group: An optional `DispatchGroup` with which to associate `block`
	/// - parameter qos: The quality of service for `block`
	/// - parameter block: A closure performing the database operation
	public func asyncTransaction(type: Database.TransactionType = .deferred, group: DispatchGroup? = nil, qos: DispatchQoS = .default, _ block: @escaping Database.TransactionBlock) {
		queue.async(group: group, qos: qos) {
			do {
				try self.database.transaction(type: type, block)
