       if (result) { plv8.execute(sql); }
 
       return true;
-    };
-
-    /**
-      Return a universally unique identifier.
-
-      From http://stackoverflow.com/a/8809472/251019
-      @return {String}
-    */
-    FP.createUuid = function () {
-      var d = new Date().getTime(),
-        uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
-          var r = (d + Math.random() * 16) % 16 | 0;
-          d = Math.floor(d / 16);
-          return (c === 'x' ? r : (r&0x7|0x8)).toString(16);
-        });
-
-      return uuid;
-    };
-
-    /**
-      Remove a class from the database.
-
-      * @param {Object} Object describing object to remove.
-      * @return {String}
-    */
-    FP.deleteClass = function (obj) {
-      obj = obj || {};
-
-      var schema = (obj.nameSpace || 'fp').toSnakeCase(),
-        table = obj.className ? obj.className.toSnakeCase() : false,
-        sql = "select * from pg_tables where schemaname = $1 and tablename = $2;",
-        args = [schema, table];
-
-      if (!table || !plv8.execute(sql, args).length) { return false };
-
-      sql = FP.formatSql("drop table %I.%I", args);
-      plv8.execute(sql);
-      
-      return true;
-    };
-
-    /**
-     * Escape strings to prevent sql injection
-       http://www.postgresql.org/docs/9.1/interactive/functions-string.html#FUNCTIONS-STRING-OTHER
-     *
-     * @param {String} A string with tokens to replace.
-     * @param {Array} Array of replacement strings.
-     * @return {String} Escaped string.
-    */
-    FP.formatSql = function (str, ary) {
-      var params = [],
-        i;
-
-      ary = ary || [];
-      ary.unshift(str);
-      for (i = 0; i < ary.length; i++) {
-        params.push("$" + (i + 1));
-      };
-
-      return plv8.execute("select format(" + params.toString(",") + ")", ary)[0].format;
-    };
-
-    /**
-      Return the current user.
-
-      @return {String}
-    */
-    FP.getCurrentUser = function () {
-      return plv8.execute("select current_user as user;")[0].user;
-    };
-    
-    /**
-      Post.
-
-      Example payload:
-          {
-             "nameSpace": "FP",
-             "className": "Contact",
-             "action": "POST",
-             "value": {
-               "guid": "dc9d03f9-a539-4eca-f008-1178f19f56ad",
-               "created": "2015-04-26T12:57:57.896Z",
-               "createdBy": "admin",
-               "updated": "2015-04-26T12:57:57.896Z",
-               "updatedBy": "admin",
-               "fullName": "John Doe",
-               "birthDate": "1970-01-01T00:00:00.000Z",
-               "isMarried": true,
-               "dependentes": 2
-             }
-          }
-
-      @return {String}
-    */
-    FP.persist = function (obj) {
-      switch (obj.action)
-      {
-      case "POST":
-        return _post(obj);
-        break;
-      case "PATCH":
-        return false;
-        break;
-      case "DELETE":
-        return _delete(obj);
-        break;
-      case "GET":
-        return false;
-        break;
-      }
     };
 
     // ..........................................................

    //

    /** private */
    _post = function (obj) {
      var schema = (obj.nameSpace || 'fp').toSnakeCase(),
        table = obj.className ? obj.className.toSnakeCase() : false,
        keys = Object.keys(obj.value),
        args = [schema, table],
        tokens = [],
        params = [],
        values = [],

    };

    /** private */
    _patch = function (obj) {
      var args = [obj.className ? obj.className.toSnakeCase() : false],
       i;

      for (i = 0; i < obj.data.length; i++) {
        switch (obj.op)
        {
        case "add":
          return _add(obj);
          break;
        case "replace":
          return _patch(obj);
          break;
        case "remove":
          return _remove(obj);
          break;
        default:
          return false;
        }
      }
    };

    /** private */
    _remove = function (obj) {
      plv8.execute("update fp.object set is_deleted = true where guid=$1;", [obj.guid]);
      
      return true;
    };

    plv8._init = true;

