make some new function

1.add feature that Bidirectional sorting
2.set new sort_order defalt value to source current max sort value
3.add insert and move function to adjust sort order