add more compare functions