Finalised new comparator API

migrated existing comparators to use same API