old_contents: var ERMrest = (function(module) {
  
      /**
       * @function
       * @param {Object} copyTo the object to copy values to.
       * @param {Object} copyFrom the object to copy value from.
       * @desc
       * This private utility function does a shallow copy between objects.
       */
      module._clone = function (copyTo, copyFrom) {
          for (var key in copyFrom) {
              // only copy those properties that were set in the object, this
              // will skip properties from the source object's prototype
              if (copyFrom.hasOwnProperty(key)) {
                  copyTo[key] = copyFrom[key];
              }
          }
      };
  
      /**
       * @function
       * @param {String} str string to be converted.
       * @desc
       * converts a string to title case
       */
      module._toTitleCase = function (str) {
          return str.replace(/\w\S*/g, function(txt){
              return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
          });
      };
  
      /**
       * @function
       * @param {String} str string to be encoded.
       * @desc
       * converts a string to an URI encoded string
       */
      module._fixedEncodeURIComponent = function (str) {
          return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
              return '%' + c.charCodeAt(0).toString(16).toUpperCase();
          });
      };
  
      module._nextChar = function (c) {
          return String.fromCharCode(c.charCodeAt(0) + 1);
      };
  
      /**
       * @function
       * @param {Object} element a model element (schema, table, or column)
       * @return {String}
       * @desc This function determines the display name for the schema, table, or
       * column elements of a model.
       */
      module._determineDisplayName = function (element) {
          var displayname = element.name;
          var display_annotation = element.annotations.get("tag:misd.isi.edu,2015:display");
          if (display_annotation && display_annotation.content &&
              display_annotation.content.name) {
              displayname = display_annotation.content.name;
          }
          return displayname;
      }
  
      return module;
  
  }(ERMrest || {}));
  
new_contents: var ERMrest = (function(module) {
  
      /**
       * @function
       * @param {Object} copyTo the object to copy values to.
       * @param {Object} copyFrom the object to copy value from.
       * @desc
       * This private utility function does a shallow copy between objects.
       */
      module._clone = function (copyTo, copyFrom) {
          for (var key in copyFrom) {
              // only copy those properties that were set in the object, this
              // will skip properties from the source object's prototype
              if (copyFrom.hasOwnProperty(key)) {
                  copyTo[key] = copyFrom[key];
              }
          }
      };
  
      /**
       * @function
       * @param {String} str string to be converted.
       * @desc
       * converts a string to title case
       */
      module._toTitleCase = function (str) {
          return str.replace(/\w\S*/g, function(txt){
              return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();
          });
      };
  
      /**
       * @function
       * @param {String} str string to be encoded.
       * @desc
       * converts a string to an URI encoded string
       */
      module._fixedEncodeURIComponent = function (str) {
          return encodeURIComponent(str).replace(/[!'()*]/g, function(c) {
              return '%' + c.charCodeAt(0).toString(16).toUpperCase();
          });
      };
  
      module._nextChar = function (c) {
          return String.fromCharCode(c.charCodeAt(0) + 1);
      };
  
      /**
       * @function
       * @param {Object} element a model element (schema, table, or column)
       * @return {String}
       * @desc This function determines the display name for the schema, table, or
       * column elements of a model.
       */
      module._determineDisplayName = function (element) {
          var displayname = element.name;
          try {
              var display_annotation = element.annotations.get("tag:misd.isi.edu,2015:display");
              if (display_annotation && display_annotation.content &&
                  display_annotation.content.name) {
                  displayname = display_annotation.content.name;
              }
          } catch (exception) {
              // no display annotation, don't do anything
          }
          return displayname;
      };
  
      return module;
  
  }(ERMrest || {}));
  
subject: Handle exception