compare smartly will be first item, may be the default