fix CompareTo()