docs: function (options, callback) {
              if (options instanceof Function) {
                  callback = options;
                  options = null;
              }
              options = options || {};
              // TODO: handle multiple access
              try {
                  var status = this._status();
                  var self = this;
                  if (status === STATE.CREATED) {
                      this.$context.$dataSource.removeModel(this, options, function (err) {
                          if (!err) {
                              self.set('id', false);
                              if (self.$collection) {
                                  self.$collection.remove(self);
                              }
                          }
                          callback && callback(err);
                      });
                  } else {
                      throw new Error("status '" + status + "' doesn't allow delete");
                  }
              } catch (e) {
                  callback && callback(e);
              }
          }