comparator complex