     public func clearFavicons() -> Success {
         var err: NSError? = nil
 
-        // TODO: this should happen asynchronously.
         db.withWritableConnection(&err) { (conn, inout err: NSError?) -> Int in
             err = conn.executeChange("DELETE FROM faviconSites", withArgs: nil)
             if err == nil {

        func doChange(query: String, args: Args?) -> Deferred<Result<Int>> {
            var err: NSError?
            let res = db.withWritableConnection(&err) { (conn, inout err: NSError?) -> Int in
                // Blind!
                let id = self.favicons.insertOrUpdate(conn, obj: icon)

                // Now set up the mapping.

        return site
    }

    private func runQuery<T>(sql: String, args: Args?, factory: SDRow -> T) -> Deferred<Result<Cursor<T>>> {
        func f(conn: SQLiteDBConnection, inout err: NSError?) -> Cursor<T> {
            return conn.executeQuery(sql, factory: factory, withArgs: args)
        }
