add other sort function