function make(type, setters) {
            var name = type + "Accessor",
              arry = type.toLowerCase(); //make HSV hsv etc
            exports[name] = function(comp) {
              this.component = comp;
              //compare() could easily be used in incorrect scope, bind it
              this.compare = bind(this.compare, this);
            };

            exports[name].prototype.compare = function(a, b) {
              var ca = a[arry][this.component],
                cb = b[arry][this.component];
              return numberComparator(ca, cb);
            };

            exports[name].prototype.getComponentValueFor = function(col) {
              return col[arry][this.component];
            };

            exports[name].prototype.setComponentValueFor = function(col, val) {
              col["set" + setters[this.component]](val);
            };
          }
Defines standard color component access criterias and associated comparators
used to sort colors based on component values. If a new custom accessor is
needed (e.g. for sub-classes TColor's), then simply sub-class this class and
implement the {@link Comparator} interface and the 2 abstract getter & setter
methods defined by this class.