make <=> and cmp work