sample comparable implementation