Lawnchair.adapter('titanium', (function(global){

    return {
        // boolean; true if the adapter is valid for the current environment
        valid: function() {
            return typeof Titanium !== 'undefined';
        },

        // constructor call and callback. 'name' is the most common option
        init: function( options, callback ) {
          if (callback){
            return callback(this);
          }
        },

        // returns all the keys in the store
        keys: function( callback ) {
            return Titanium.App.Properties.listProperties();
        },

        // save an object
        save: function( obj, callback ) {
            Titanium.App.Properties.setObject(obj.key, obj);
            return this;
        },

        // batch save array of objs
        batch: function( objs, callback ) {
            var me = this;
            var saved = [];
            for ( var i = 0, il = objs.length; i < il; i++ ) {
                me.save( objs[i], function( obj ) {
                    saved.push( obj );
                    if ( saved.length === il && callback ) {
                        me.lambda( callback ).call( me, saved );
                    }
                });
            }
            return this;
        },

        // retrieve obj (or array of objs) and apply callback to each
        get: function( key /* or array */, callback ) {
            var me = this;
            if ( this.isArray( key ) ) {
                var values = [];
                for ( var i = 0, il = key.length; i < il; i++ ) {
                    me.get( key[i], function( result ) {
                        if ( result ) values.push( result );
                        if ( values.length === il && callback ) {
                            me.lambda( callback ).call( me, values );
                        }
                    });
                }
            } else {
                return callback(this, Titanium.App.Properties.getObject(key));
            }
            return this;
        },

        // check if an obj exists in the collection
        exists: function( key, callback ) {
            if (callback){
              if (Titanium.App.Properties.getObject(key)){
                return cb(this, true);
              }else{
                return cb(this, false);
              }
            }

            return this;
        },

        // returns all the objs to the callback as an array
        all: function( callback ) {
            var me = this;
            if ( callback ) {
                this.keys(function( keys ) {
                    if ( !keys.length ) {
                        me.fn( me.name, callback ).call( me, [] );
                    } else {
                        me.get( keys, function( values ) {
                            me.fn( me.name, callback ).call( me, values );
                        });
                    }
                });
            }
            return this;
        },

        // remove a doc or collection of em
        remove: function( key /* or object */, callback ) {
            var me = this;
            Titanium.App.Properties.removeProperty(key);
            if (callback) {
              return callback(this);
            }
            return this;
        },

        // destroy everything
        nuke: function( callback ) {
            // nah, lets not do that
        }
    };
}(this)));

@@ -381,32 +381,48 @@
           return
+ this.fn('init',
  callback(this);
@@ -406,39 +406,44 @@
 'init', callback
+).call
 (this)
-;
 %0A          %7D%0A   
@@ -543,24 +543,87 @@
         
-  return
+if (callback) %7B%0A            return this.fn('keys', callback).call(this,
  Titaniu
@@ -655,16 +655,52 @@
 erties()
+);%0A          %7D%0A          return this
 ;%0A      
@@ -776,32 +776,46 @@
  ) %7B%0A           
+ var saveRes =
  Titanium.App.Pr
@@ -848,16 +848,126 @@
 , obj);%0A
+            if (callback) %7B%0A              return this.fn('save', callback).call(this, saveRes);%0A            %7D%0A
         
@@ -2158,32 +2158,54 @@
      return 
+this.fn('init', callback).
 call
-back
 (this, Titan
@@ -2493,25 +2493,31 @@
     return c
-b
+allback
 (this, true)
@@ -2563,17 +2563,23 @@
 return c
-b
+allback
 (this, f
@@ -3477,32 +3477,56 @@
      return 
+this.fn('remove', callback).
 call
-back
 (this);%0A    

Fix up lawnchair titanium adapter