basic sorter interface