fixed compareTo