 fires a `submit` event
     *
     * @param {Event} event A `submit` event.
     */
    _onSubmit: function(event) {
      this.submit();

      // Don't perform a page refresh.
      if (event) {
        event.preventDefault();
      }

      return false;
    },

    /**
     * Handler that is called when the native form fires a `reset` event
     *
     * @param {Event} event A `reset` event.
     */
    _onReset: function(event) {
      this._resetCustomElements();
    },

    /**
     * Returns a json