diff --git a/README.md b/README.md
index 88fc692..3cd3fc5 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,100 @@
Phonegap SQLitePlugin
=====================
-I have been developing Phonegap applications that required big databases.
-WebKitSQLite HTML5 database has hardcoded quota limitations so I decided to
-write this plugin to open my own sqlite files from javascript.
+This is Joe Noon's fork of Phonegap-SQLitePlugin
-Currently the plugin supports basic open, close, executeSQL and has no support
-for transactions.
+This fork lives at: https://github.com/joenoon/Phonegap-SQLitePlugin
-I also started writing a js wrapper that exposes an HTML5-like interface but
-it is unfinished yet (see sqlite-html5.js)
+The original lives at: https://github.com/davibe/Phonegap-SQLitePlugin
-Later I found out that I could actually use this plugin to open the same
-database file WebKit uses to store HTML5 dbs and change their quota limits
-(see sqlite.js). This way I was able to store up to 1Gb using standard
-WebKitSQLite.
+This fork has largely diverged from the original, and is not a drop-in
+replacement.
+DISCLAIMER:
+
+ I'm brand new to objective-c, so there could be problems with my code!
+ Please tell me. joenoon@gmail.com
-Usage
-=====
+Added:
-Like any other PGPlugin drag it into your project, include sqlite.js file in
-your application, modify PhoneGap.plist to bind PGSQLitePlugin to
-it.dadeb.sqliteplugin namespace. Look at sqlite.js to get a sense of how it
-works.
+ obj-c:
+ batch execution support
+ query parameter binding
+ perform after delay so js-objc call doesn't need to wait for response
+ callbacks moved out of instance and into options of each method call
+ path just takes filename, and path is put in Documents folder
+ added rowsAffected, insertId
+ success callback response is { insertId: x, rowsAffected: y, rows: z }
+ error callback response is { message: x }
+
+ js (coffeescript):
+ new implementation
+ first cut transaction support
+ callbacks per-statement, even within transaction
+ somewhat similar api to the webkit/phonegap default
+
+Removed:
+
+ quota limit webkit html5 db patching
+ exit from app
+ (I don't think either of these would make it through the approval process)
+
+Other notes:
+
+ I played with the idea of batching responses into larger sets of
+ writeJavascript on a timer, however there was only a barely noticeable
+ performance gain. So I took it out, not worth it. However there is a
+ massive performance gain by batching on the client-side to minimize
+ PhoneGap.exec calls using the transaction support.
+
+Installing
+==========
+
+Drag .h and .m files into your project's Plugins folder (in xcode) -- I always
+just have "Create references" as the option selected.
+
+Compile the coffeescript file to javascript WITH the top-level function wrapper
+option (default).
+
+Use the resulting javascript file in your HTML.
+
+Look for the following to your project's PhoneGap.plist:
+
+Plugins
+
+ ...
+
+
+Insert this in there:
+
+PGSQLitePlugin
+PGSQLitePlugin
+
+General Usage
+=============
+
+(You're using Coffeescript right? Of course you are.)
+
+db = new PGSQLitePlugin("test_native.sqlite3")
+db.executeSql('DROP TABLE IF EXISTS test_table')
+db.executeSql('CREATE TABLE IF NOT EXISTS test_table (id integer primary key, data text, data_num integer)')
+
+db.transaction (tx) ->
+
+ tx.executeSql [ "INSERT INTO test_table (data, data_num) VALUES (?,?)", "test", 100], (res) ->
+
+ # success callback
+
+ console.log "insertId: #{res.insertId} -- probably 1"
+ console.log "rowsAffected: #{res.rowsAffected} -- should be 1"
+
+ # check the count (not a part of the transaction)
+ db.executeSql "select count(id) as cnt from test_table;", (res) ->
+ console.log "rows.length: #{res.rows.length} -- should be 1"
+ console.log "rows[0].cnt: #{res.rows[0].cnt} -- should be 1"
+
+ , (e) ->
+
+ # error callback
+
+ console.log "ERROR: #{e.message}"