[updated]-implement comparable