         }
     }
     
-    /// This subscript returns a Database struct given a String
+    /// Returns a `Database` instance referring to the database with the provided database name
+    ///
     /// - parameter database: The database's name
+    ///
     /// - returns: A database instance for the requested database
     public subscript (database: String) -> Database {
         let database = replaceOccurrences(in: database, where: ".", with: "")

        let response = try firstDocument(in: try self["$cmd"].execute(command: command))
        
        guard response["ok"].int32 == 1 else {
            throw MongoError.CommandFailure
        }
    }
    
    /// Flushes all pending writes serverside
    /// - parameter async: Do we run this async?
    /// - parameter blocking: Do we block writing in the meanwhile?
    public func fsync(async: Bool? = nil, blocking block: Bool? = nil) throws {
        var command: Document = [
                                    "fsync": .int32(1)

        try self.init(at: host, port: port, using: authentication, automatically: connecting, using: tcpDriver)
    }
    
    /// Sets up the `Server` to connect to the specified URL.
    /// The `mongodb://` scheme is required as well as the host. Optionally youc an provide ausername + password. And if no port is specified "27017" is used.
    /// You can provide an alternative TCP Driver that complies to `MongoTCP`.
    /// This Server doesn't connect automatically. You need to either use the `connect` function yourself or specify the `automatically` parameter to be true.
    ///
    /// - parameter url: The MongoDB connection String.
    /// - parameter using: The TCP Driver to be used to connect to the server. Recommended to change to an SSL supporting socket when connnecting over the public internet.
    /// - parameter automatically: Whether to connect automatically
    ///
    /// - throws: Throws when we can't connect automatically, when the scheme/host is invalid and when we can't connect automatically
    public convenience init(_ uri: String, using tcpDriver: MongoTCP.Type = CSocket.self, automatically connecting: Bool = true) throws {
        guard let url = NSURL(string: uri) else {
            throw MongoError.InvalidURI(uri: uri)
