using comparable