add my own sort