unsigned long for cmp() now