added compare(), reverseCompare(), objectComparator()