fix compareTo to match superclass and handle Service special case