shouldn't this be done with localeCompare?