text: function JSAccordion(elementOrSelector) {
      if(!(this instanceof JSAccordion))
          return new JSAccordion(elementOrSelector);
  
      //  define public methods
      this.test = function(color) {
          this.targetElement.style.color = color;
      };
  
      //  start construction operations
      //  if parameter is element selector
      if(typeof elementOrSelector == 'string') {
          this.targetElement = document.querySelector(elementOrSelector);
          if(this.targetElement == null) {
              throw ('invalid element selector');
          }
      }
      //  if parameter is element DOM object
      else if(typeof elementOrSelector == 'object')
          this.targetElement = elementOrSelector;
      else
          throw ('Unknown element type');
  
      //  set autoincrement instance id to object
      this.id = JSAccordion.instances.length;
  
      JSAccordion.instances.push(this);
  
      return this;
  }
  
  //  define static property to keep all instances
  JSAccordion.instances = [];